object
<iostream>

std::cerr

extern ostream cerr;
Standard output stream for errors
Object of class ostream that represents the standard error stream oriented to narrow characters (of type char). It corresponds to the C stream stderr.

The standard error stream is a destination of characters determined by the environment. This destination may be shared by more than one standard object (such as cout or clog).

As an object of class ostream, characters can be written to it either as formatted data using the insertion operator (operator<<) or as unformatted data, using member functions such as write.

The object is declared in header <iostream> with external linkage and static duration: it lasts the entire duration of the program.

In terms of static initialization order, cerr is guaranteed to be properly constructed and initialized no later than the first time an object of type ios_base::Init is constructed.

cerr is not tied to any other output stream (see ios::tie).
In terms of static initialization order, cerr is guaranteed to be properly constructed and initialized no later than the first time an object of type ios_base::Init is constructed, with the inclusion of <iostream> counting as at least one initialization of such objects with static duration.

cerr is tied to the standard output stream cout (see ios::tie), which indicates that cout's buffer is flushed (see ostream::flush) before each i/o operation performed on cerr.

By default, cerr is synchronized with stderr (see ios_base::sync_with_stdio).

A program should not mix output operations on cerr with output operations on wcerr or wclog (or with other wide-oriented output operations on stderr): Once an output operation has been performed on either, the standard error stream acquires an orientation (either narrow or wide) that can only be safely changed by calling freopen on stderr.

For more information on the operations supported by cerr, see the reference for its type: ostream.

See also