概要
現在の状態値を消去し、実引数で指定した状態に設定する。
効果
状態値をstateにする。
ただし、rdbuf()がヌルポインタであれば、さらにios_base::badbitをビットORした値にする。
例外
変更後の状態値のビットとexceptions()で設定した値でビットごとのANDを行って非0になれば、ios_base::failure型の例外を送出する。
送出する例外オブジェクトの構築方法は、以下のように規定されている。
実装例
void clear(iostate state = goodbit) {
iostate newstate = rdbuf() != 0
? state
: state | badbit;
// 後でrdstate()から読み取れるよう、ここでbasic_iosのメンバ変数にnewstateを書き込む。
if ((newstate & exceptions()) != 0) {
throw failure("basic_ios::clear");
}
}
戻り値
なし
バージョン
言語
- C++98