最終更新日時: 2018年10月03日 11時53分55秒 (JST)
Akira Takahashi が更新

履歴 編集

variable
<iostream>

# std::cerr

    namespace std {
      extern ostream cerr;
      extern wostream wcerr;
    }

## 概要

`cerr`も`wcerr`も、標準エラー出力に対する出力ストリームオブジェクトである。

すなわち、`std::basic_streambuf`から派生していて`<cstdio>`の`stderr`オブジェクトに結びつけられているストリームバッファに出力する。

本オブジェクトは、初期化が完了すると `tie()` が `&cout` を返すようになる。

`clog`と異なる点は、`unitbuf`フラグが指定されていることである。そのため、出力操作のたびにバッファの吐き出しが行われる。

その他の状態は、`basic_ios::init` の事後条件と同様である。

`cerr`は`character error (stream)`を意味する。また`wcerr`は`wide character error (stream)`を意味する。[1]

## 例

    #include <iostream>
    #include <vector>

    int main()
    {
      try
      {
        std::vector<int> v;
        v.at(42) = 1;
      }
      catch(const std::exception& e)
      {
        std::cerr << "問題発生: " << e.what() << std::endl;
      }
    }

### 出力例

    問題発生: invalid vector<T> subscript

出力内容は環境により異なる。

## バージョン

### 言語

- C++98

## 出典

1. ^ Stroustrup: C++ Style and Technique FAQ(2018-08-21 17:01 JST 閲覧)

## 参照

- `clog`
- `cout`