Defined in header
extern std::ostream clog;
extern std::wostream wclog;
The global objects std::clog and std::wclog control output to a stream buffer of implementation-defined type (derived from std::streambuf), associated with the standard C output stream stderr, but, unlike std::cerr/std::wcerr, these streams are not automatically flushed and not automatically tie()'d with cout.
These objects are guaranteed to be constructed before the first constructor of a static object is called and they are guaranteed to outlive the last destructor of a static object, so that it is always possible to write to std::clog in user code.
Unless sync_with_stdio(false) has been issued, it is safe to concurrently access these objects from multiple threads for both formatted and unformatted output.
static constructor main function static destructor
| initializes standard stream objects |
(public member class of
| writes to the standard C error stream stderr, unbuffered|
| writes to the standard C output stream stdout|