| (1) | |
1 2 | private :
ios_base( const ios_base& );
|
| (until C++11) |
1 2 | public :
ios_base( const ios_base& ) = delete ;
|
| (since C++11) |
| (2) | |
1) The copy constuctor is deleted: streams are not copyable.
2) The default constructor is protected: only derived classes may construct std::ios_base
. The internal state is undefined after the construction. The derived class must call basic_ios::init()
to complete initialization before first use or before destructor, otherwise the behavior is undefined.
Notes
The same applies to the constructors of the next class in the I/O hierarchy, std::basic_ios
. Further-derived classes (std::istream
and std::ostream
) are always constructed with a concrete streambuffer object and call basic_ios::init()
, possibly more than once, to complete initialization of their virtual base.
Please login to continue.