名前空間
変種
操作

std::clog, std::wclog

提供: cppreference.com
< cpp‎ | io
 
 
 
 
ヘッダ <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」という意味です。

[編集]

#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のパブリックメンバクラス) [edit]
標準 C エラーストリーム stderr に書き込みます。 バッファリングされません
(グローバルオブジェクト) [edit]
標準 C 出力ストリーム stdout に書き込みます
(グローバルオブジェクト) [edit]