std::ios_base::ios_base(3) | C++ Standard Libary | std::ios_base::ios_base(3) |
NAME¶
std::ios_base::ios_base - std::ios_base::ios_base
Synopsis¶
private: (until C++11)
ios_base( const ios_base& );
public: (1) (since C++11)
ios_base( const ios_base& ) = delete;
protected: (2)
ios_base();
1) The copy constructor is
private
(until C++11)
deleted
(since C++11): 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 std::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 stream buffer object and call
std::basic_ios::init(),
possibly more than once, to complete initialization of their virtual
base.
Defect reports
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
the behavior of destroying a
LWG 220 C++98 std::ios_base the behavior is
object before calling its init() was not undefined in this case
clear
LWG 1249 C++98 initialization did not need to be also needs to be
completed before first use completed
2024.06.10 | http://cppreference.com |