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.
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)").
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
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) |