std::clog, std::wclog
提供: cppreference.com
ヘッダ <iostream> で定義
|
||
extern std::ostream clog; |
(1) | |
extern std::wostream wclog; |
(2) | |
グローバルオブジェクト std::clog
および std::wclog
は標準 C 出力ストリーム stderr に紐付けられている処理系定義の (std::streambuf から派生した) 型のストリームバッファへの出力を制御しますが、 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」という意味です。
[編集] 例
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"; }
出力:
static constructor main function static destructor
[編集] 関連項目
標準ストリームオブジェクトを初期化します ( std::ios_base のパブリックメンバクラス)
| |
標準 C エラーストリーム stderr に書き込みます。 バッファリングされません (グローバルオブジェクト) | |
標準 C 出力ストリーム stdout に書き込みます (グローバルオブジェクト) | |
入力ストリームに関連付けられた FILE* 型の式 出力ストリームに関連付けられた FILE* 型の式 エラー出力ストリームに関連付けられた FILE* 型の式 (マクロ定数) |