cpp/io/basic iostream/basic iostream

Constructs new stream object.

@1@ Initializes with streambuf. The base classes are initialized as and. After the call and.

@2@ Copy construction is not allowed.

@3@ Move constructor: move-constructs the first base class as, which in turn move-constructs and initializes the virtual base std. The initialization of the other base,, is implementation-defined (e.g., a protected default constructor may be added to std, which does nothing) because move-construction cannot use twice. This move constructor is protected: it is called by the move constructors of the derived stream classes std and std before they move-construct and associate the stream buffer.