概要
現在の状態値を消去し、実引数で指定した状態に設定する。
効果
状態値をstate
にする。
ただし、rdbuf() == nullptr
であれば、さらにios_base::badbit
をビットORした値にする。
例外
変更後の状態値のビットとexceptions()
で設定した値でビットごとのANDを行って非0になれば、ios_base::failure
型の例外を送出する。
その際、ios_base::failure
のコンストラクタに渡される引数は、処理系定義である。
実装例
void clear(iostate state = goodbit) {
iostate newstate = rdbuf() != nullptr
? state
: state | badbit;
// 後でrdstate()から読み取れるよう、ここでbasic_iosのメンバ変数にnewstateを書き込む。
if ((newstate & exceptions()) != 0) {
throw failure("basic_ios::clear");
}
}
戻り値
なし
バージョン
言語
- C++98
参照
- 状態値の書き込み
setstate
clear
(この関数)
- 状態値の読み取り
- 例外マスクの取得・設定