basic_ostream operator<<, :
template <typename Elem, typename Traits, typename T>
basic_ostream<Elem, Traits>&
operator<<(basic_ostream<Elem, Traits>&& sink, const T& val)
{
return sink << val;
}
" Rvalue" , Β§27.7.3.9 [ostream.rvalue].
( ) rvalue basic_ostream lvalue. , , .
, :
Stream& operator<<(Stream& s, Dummy) , Stream std::fstream, std::ostream (.. basic_ostream<char>).
basic_ostream<E, T>& operator<<(basic_ostream<E, T>&, const char*) , , ostream. std::ostream& std::fstream&, .
, s (, ).
, rvalue-to-lvalue, . basic_ostream, Stream , .