Scroll to navigation

std::clog,std::wclog(3) C++ Standard Libary std::clog,std::wclog(3)

NAME

std::clog,std::wclog - std::clog,std::wclog

Synopsis


Defined in header <iostream>
extern std::ostream clog; (1)
extern std::wostream wclog; (2)


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 cout is not automatically tie()'d with these streams.


These objects are guaranteed to be initialized during or before the first time an
object of type std::ios_base::Init is constructed and are available for use in the
constructors and destructors of static objects with ordered initialization (as long
as <iostream> is included before the object is defined).


Unless std::ios_base::sync_with_stdio(false) has been issued, it is safe to
concurrently access these objects from multiple threads for both formatted and
unformatted output.

Notes


The 'c' in the name refers to "character" (stroustrup.com FAQ); clog means
"character log" and wclog means "wide character log"

Example

// Run this code


#include <iostream>


struct Foo {
int n;
Foo() {
std::clog << "static constructor\n";
}
~Foo() {
std::clog << "static destructor\n";
}
};


Foo f; // static object


int main()
{
std::clog << "main function\n";
}

Output:


static constructor
main function
static destructor

See also


Init initializes standard stream objects
(public member class of std::ios_base)
cerr writes to the standard C error stream stderr, unbuffered
wcerr (global object)
cout writes to the standard C output stream stdout
wcout (global object)
stdin expression of type FILE* associated with the input stream
stdout expression of type FILE* associated with the output stream
stderr expression of type FILE* associated with the error output stream
(macro constant)

2022.07.31 http://cppreference.com