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)
2024.06.10 | http://cppreference.com |