Difference between revisions of "cpp/io/clog"
From cppreference.com
SuperBoi45 (Talk | contribs) m |
m (Shorten template names. Use {{lc}} where appropriate.) |
||
Line 1: | Line 1: | ||
{{cpp/title|clog|wclog}} | {{cpp/title|clog|wclog}} | ||
{{cpp/io/basic_ostream/navbar}} | {{cpp/io/basic_ostream/navbar}} | ||
− | {{ | + | {{dcl begin}} |
− | {{ | + | {{dcl header | iostream }} |
− | {{ | + | {{dcl | num=1 | 1= |
extern std::ostream clog; | extern std::ostream clog; | ||
}} | }} | ||
− | {{ | + | {{dcl | num=2| 1= |
extern std::wostream wclog; | extern std::wostream wclog; | ||
}} | }} | ||
− | {{ | + | {{dcl end}} |
− | The global objects {{ | + | The global objects {{lc|std::clog}} and {{lc|std::wclog}} control output to a stream buffer of implementation-defined type (derived from {{lc|std::streambuf}}), associated with the standard C output stream {{lc|stderr}}, but, unlike {{lc|std::cerr}}/{{lc|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 {{ | + | 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 {{lc|std::clog}} in user code. |
Unless {{c|sync_with_stdio(false)}} has been issued, it is safe to concurrently access these objects from multiple threads for both formatted and unformatted output. | Unless {{c|sync_with_stdio(false)}} has been issued, it is safe to concurrently access these objects from multiple threads for both formatted and unformatted output. | ||
Line 45: | Line 45: | ||
===See also=== | ===See also=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc | cpp/io/ios_base/dcl list Init}} |
− | {{ | + | {{dsc inc | cpp/io/dcl list cerr}} |
− | {{ | + | {{dsc inc | cpp/io/dcl list cout}} |
− | {{ | + | {{dsc end}} |
[[de:cpp/io/clog]] | [[de:cpp/io/clog]] |
Revision as of 18:55, 31 May 2013
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 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.
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