名前付き要件:UnformattedOutputFunction
提供: cppreference.com
[編集]要件
UnformattedOutputFunction は以下の動作を行うストリーム出力関数です。
- 自動記憶域期間を持つ basic_ostream::sentry 型のオブジェクトを構築します。 これは以下の動作を行います。
- 出力ストリームに eofbit または badbit がセットされている場合、
failbit
も同様にセットし、さらに、出力ストリームの例外マスクで failbit に対する例外が有効であれば、 ios_base::failure を投げます。 - 適用可能であれば、 tie() されている出力ストリームをフラッシュします。
- 出力ストリームに eofbit または badbit がセットされている場合、
sentry::operator bool()
を呼ぶことによって sentry の状態を確認します。 これは basic_ios::good と同等です。- sentry が false を返した、または sentry のコンストラクタが例外を投げた場合、出力は行われません。
- sentry が true を返した場合、 rdbuf()->sputc() または rdbuf()->xsputn() を呼んだかのように出力ストリームに文字を挿入することによって所望の出力を試みます。 さらに、 rdbuf()->overflow() および rdbuf()->sync() を呼ぶ可能性がありますが、それ以外の std::basic_streambuf の仮想関数は呼びません。
- 出力中に例外が投げられた場合、出力ストリームの
badbit
をセットします。 このストリームの例外マスクで badbit に対する例外が有効であれば、その例外が投げ直されます。 - 例外が投げられなかった場合、その関数によって規定された値が返されます。
- 出力中に例外が投げられた場合、出力ストリームの
- いかなる出来事が発生しても、例外によって終了したか戻ったかにかかわらず、この関数を抜ける前に sentry のデストラクタが呼ばれます。
[編集]標準ライブラリ
以下の標準ライブラリの関数は UnformattedOutputFunction です。
- basic_ostream::operator<<(basic_streambuf*)
- basic_ostream::put
- basic_ostream::write
- basic_ostream::flush
| (C++11以上) |