Namespaces
Variants
Views
Actions

std::ios_base::ios_base

From cppreference.com
< cpp‎ | io‎ | ios base
Revision as of 10:14, 15 February 2013 by Cubbi (Talk | contribs)

Template:ddcl list begin <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
private:

ios_base( const ios_base& );
public:

ios_base( const ios_base& ) = delete;
</td>

<td > (1) </td> <td >
(until C++11)

(since C++11) </td> </tr> <tr class="t-dcl-sep"><td></td><td></td><td></td></tr>

<tr class="t-dcl ">

<td >
protected:
ios_base();
</td>

<td > (2) </td> <td class="t-dcl-nopad"> </td> </tr> Template:ddcl list end

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.