| (1) | ||
private: ios_base( const ios_base& ); | (until C++11) | |
public: ios_base( const ios_base& ) = delete; | (since C++11) | |
protected: ios_base(); | (2) |
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.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.
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 50 | C++98 | the copy constructor was not specified | specified as private |
| LWG 220 | C++98 | the behavior of destroying a std::ios_baseobject before calling its init() was not clear | the behavior is undefined in this case |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/ios_base/ios_base