std::ios_base::ios_base
From cppreference.com
(1) | ||
private: ios_base( const ios_base& ); |
(until C++11) | |
public: ios_base( const ios_base& ) = delete; |
(since C++11) | |
protected: ios_base(); |
(2) | |
1) The copy constructor 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.