std:: clog, std:: wclog
|
Определено в заголовочном файле
<iostream>
|
||
|
extern
std::
ostream
clog
;
|
(1) | |
|
extern
std::
wostream
wclog
;
|
(2) | |
Глобальные объекты
std::clog
и
std::wclog
управляют выводом в буфер потока реализационно-определенного типа (производного от
std::streambuf
), ассоциированный со стандартным C потоком вывода
stderr
, но, в отличие от
std::cerr
/
std::wcerr
, эти потоки не сбрасываются автоматически и cout не автоматически связывается (tie()) с этими потоками.
Эти объекты гарантированно инициализируются во время или до первого создания объекта типа std::ios_base::Init и доступны для использования в конструкторах и деструкторах статических объектов с упорядоченной инициализацией (при условии, что <iostream> включен до определения объекта).
Если не была выполнена команда sync_with_stdio ( false ) , безопасно одновременно обращаться к этим объектам из нескольких потоков как для форматированного, так и для неформатированного вывода.
Примечания
Буква «c» в названии означает «character» (
stroustrup.com FAQ
);
clog
означает «character log», а
wclog
означает «wide character log».
Пример
#include <iostream> struct Foo { int n; Foo() { std::clog << "constructor\n"; } ~Foo() { std::clog << "destructor\n"; } }; Foo f; // static object int main() { std::clog << "main function\n"; }
Вывод:
constructor main function destructor
Смотрите также
|
инициализирует объекты стандартных потоков
(публичный класс-член
std::ios_base
)
|
|
|
записывает в стандартный поток ошибок C
stderr
, небуферизованный
(глобальный объект) |
|
|
записывает в стандартный поток вывода C
stdout
(глобальный объект) |
|
|
выражение типа
FILE
*
связанное с входным потоком
выражение типа FILE * связанное с выходным потоком выражение типа FILE * связанное с потоком вывода ошибок (макроконстанта) |