Name
ios_base::Init class — Initialization class
Synopsis
class ios_base::Init {
public:
Init( );
~Init( );
};The Init class is used to
ensure that the construction of the standard I/O stream objects
occurs. The first time an ios_base::Init object is constructed, it
constructs and initializes cin,
cout, cerr, clog, wcin, wcout, wcerr, and wclog. A static counter keeps track of the
number of times ios_base::Init is
constructed and destroyed. When the last instance is destroyed,
flush( ) is called for cout, cerr, clog, wcout, wcerr, and wclog.
For example, suppose a program constructs a static object, and
the constructor prints a warning to cerr if certain conditions hold. To ensure
that cerr is properly initialized
and ready to receive output, declare an ios_base::Init object before your static
object, as shown in Example
13-15.
Example
class myclass {
public:
myclass( ) {
if (! okay( ))
std::cerr << "Oops: not okay!\n";
}
};
static std::ios_base::Init init;
static myclass myobject;See Also
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access