19 Socket iostreams [socket.iostreams]

19.2 Class template basic_socket_iostream [socket.iostream]

19.2.1 basic_socket_iostream constructors [socket.iostream.cons]

basic_socket_iostream();

Effects: Initializes the base class as basic_iostream<char>(&sb_), value-initializes sb_, and performs setf(std::ios_base::unitbuf).

explicit basic_socket_iostream(basic_stream_socket<protocol_type> s);

Effects: Initializes the base class as basic_iostream<char>(&sb_), initializes sb_ with std::move(s), and performs setf(std::ios_base::unitbuf).

basic_socket_iostream(basic_socket_iostream&& rhs);

Effects: Move constructs from the rvalue rhs. This is accomplished by move constructing the base class, and the contained basic_socket_streambuf. Next basic_iostream<char>::set_rdbuf(&sb_) is called to install the contained basic_socket_streambuf.

template<class... Args> explicit basic_socket_iostream(Args&&... args);

Effects: Initializes the base class as basic_iostream<char>(&sb_), value-initializes sb_, and performs setf(std::ios_base::unitbuf). Then calls rdbuf()->connect(forward<Args>(args)...). If that function returns a null pointer, calls setstate(failbit).

basic_socket_iostream& operator=(basic_socket_iostream&& rhs);

Effects: Move assigns the base and members of *this from the base and corresponding members of rhs.

Returns: *this.