std::clog, std::wclog
Definido en el archivo de encabezado <iostream>
|
||
extern std::ostream clog; |
(1) | |
extern std::wostream wclog; |
(2) | |
Los objetos globales std::clog y std::wclog controlan la salida a un búfer de flujo de datos de tipo definido por la implementación (derivados de std::streambuf y std::wstreambuf, respectivamente), asociado con el flujo de salida de error estándar de C: stderr, pero a diferencia de std::cerr/std::wcerr estos flujos no se descargan ni son atados (tie()) a std::cout automáticamente.
Está garantizado que la construcción de estos objetos ocurra antes o durante el llamado al primer constructor de un objeto tipo std::ios_base::Init, y que esté disponible para su uso en los constructores y destructores de objetos estáticos con inicialización ordenada (siempre y cuando <iostream>
sea incluido antes de que el objeto sea definido).
Es seguro acceder a estos objetos simultáneamente desde varios hilos, tanto para la salida con formato como para la salida sin formato, a menos que sync_with_stdio(false) haya sido emitido.
[editar] Notas
La 'c' en el nombre de los objetos se refiere a caracter ("character") (stroustrup.com FAQ); clog
significa flujo de log de caracter ("character log (stream)") y wclog
significa flujo de log de caracter amplio ("wide character log (stream)").
[editar] Ejemplo
#include <iostream> struct Foo { int n; Foo() { std::clog << "constructor estático\n"; } ~Foo() { std::clog << "destructor estático\n"; } }; Foo f; // objecto estático int main() { std::clog << "main\n"; }
Salida:
constructor estático main destructor estático
[editar] Ver también
Inicializa los objetos flujo estándar. (clase miembro pública de std::ios_base )
| |
Escribe al flujo de error estándar de C stderr, sin búfer. (objeto global) | |
Escribe al flujo de salida estándar de C stdout. (objeto global) |