std::clog, std::wclog
| Definiert in Header <iostream> |
||
| extern std::ostream clog; |
(1) | |
| extern std::wostream wclog; |
(2) | |
Die globalen Objekte std::clog und std::wclog steuern die Ausgabe auf einen Stream-Buffer vom implementierungsdefinierten Typ (abgeleitet von std::streambuf), der mit dem Standard-C-Ausgabestrom stderr verbunden ist. Im Gegensatz zu std::cerr/std::wcerr werden diese Streams jedoch nicht automatisch geleert, und cout ist nicht automatisch mit diesen Streams tie()'d.
Es wird garantiert, dass diese Objekte während oder vor der ersten Konstruktion eines Objekts vom Typ std::ios_base::Init initialisiert werden und für die Verwendung in den Konstruktoren und Destruktoren von statischen Objekten mit geordneter Initialisierung verfügbar sind (solange <iostream> vor der Definition des Objekts inkludiert wird).
Sofern sync_with_stdio(false) nicht aufgerufen wurde, ist es sicher, diese Objekte aus mehreren Threads gleichzeitig für formatierte und unformatierte Ausgaben zu verwenden.
[bearbeiten] Hinweise
Das "c" im Namen steht für "character" (Zeichen) (stroustrup.com FAQ); clog bedeutet "character log" (Zeichenprotokoll) und wclog bedeutet "wide character log" (Breitzeichenprotokoll).
[bearbeiten] Beispiel
#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"; }
Ausgabe
constructor main function destructor
[bearbeiten] Siehe auch
| initialisiert Standard-Stream-Objekte (public member class of std::ios_base) | |
| schreibt in den Standard-C-Fehlerstrom stderr, unbuffered (globales Objekt) | |
| schreibt in den Standard-C-Ausgabestrom stdout (globales Objekt) | |
| Ausdruck vom Typ FILE*, der dem Eingabestrom zugeordnet ist Ausdruck vom Typ FILE*, der dem Ausgabestrom zugeordnet ist Ausdruck vom Typ FILE*, der dem Fehlerstrom zugeordnet ist (Makrokonstante) |