• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class template
    <ostream>

    std::basic_ostream

    namespace std {
      template<class CharT, class Traits = char_traits<CharT>>
      class basic_ostream : virtual public basic_ios<CharT, Traits> { …… };
    
      using ostream  = basic_ostream<char>;
      using wostream = basic_ostream<wchar_t>;
    }
    

    概要

    basic_ostream は、出力ストリームを表現するクラスである。 すなわち、rdbuf() が指し示すストリームバッファオブジェクトに対する書き込み操作を提供する。

    各種の出力関数——特に<<演算子——がクラスのメンバ関数・非メンバ関数として定義されている。 このため、ユーザーコードで入力処理を実装する際には、basic_ostream、あるいはそれに対する別名であるostreamwostreamなどの型への参照を実引数として受け取るようにすると良い。

    テンプレートパラメータとして文字型を受け取るようになっており、使用を容易にするため、以下のパラメータ設定済みエイリアスが定義されている。 このエイリアスは<ostream>ヘッダと<iosfwd>ヘッダで定義されている。

    エイリアス 説明 対応バージョン
    ostream char型。ASCII、UTF-8等のマルチバイト文字列や、バイナリデータとして使用する。
    wostream wchar_t型。ワイド文字列として使用する。

    書式化出力関数と非書式化出力関数

    basic_ostreamでの出力操作は、書式化出力関数と非書式化出力関数の2種類に分類される。

    書式化出力関数と非書式化出力関数の効果

    注意:書式化出力関数と非書式化出力関数すべてについて、「効果」の項目は以下の処理を前提として記載している。

    書式化出力関数・非書式化出力関数は、出力処理に先立ってsentryオブジェクトを構築し、関数から脱出する前に破棄する。 構築した sentry オブジェクトが operator bool 関数で true に変換できる場合のみ、実際の出力処理(各関数の「効果」として記載した処理)が実行される。

    (書式化出力関数のみ)operator bool 関数の結果が false であったら、setstate(ios_base::badbit) を呼び出す。

    関数内部で例外が送出された場合、ios_base::badbit を設定する。 そして、(exceptions() & badbit) != 0 であれば例外を再送出する。

    メンバ

    基底クラスである ios_basebasic_ios も参照のこと。

    名前 説明 対応バージョン
    sentry 出力操作の前処理・後処理

    構築・破棄

    名前 説明 対応バージョン
    (constructor) コンストラクタ
    (destructor) デストラクタ
    • コピーコンストラクタとコピー代入演算子はdelete定義されている。
    • ムーブコンストラクタ・ムーブ代入演算子とswapはprotectedで定義されている。

    出力処理

    名前 説明 対応バージョン
    operator<< 書式化出力・マニピュレータの実行
    put 文字の出力
    write 文字列・バイト列の出力
    flush ストリームバッファのフラッシュ

    <<演算子のほとんどは書式化出力関数である。 その他のメンバ関数は非書式化出力関数である。

    シーク

    名前 説明 対応バージョン
    tellp 現在の読み取り位置を取得する
    seekp 読み取り位置を移動する

    protectedメンバ関数

    名前 説明 対応バージョン
    (constructor) コンストラクタ
    operator= 代入 C++11
    swap 値の交換 C++11

    非メンバ関数

    名前 説明 対応バージョン
    operator<< 文字・文字列の書式化出力、および、右辺値ストリームへの出力

    参照