最終更新日時: 2023年02月06日 18時03分21秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<ios>

# std::basic_ios::clear

    void clear(iostate state = goodbit);

## 概要

現在の状態値を消去し、実引数で指定した状態に設定する。

## 効果

状態値を`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`（この関数）
- 状態値の読み取り
  - `rdstate`
  - `good`
  - `eof`
  - `fail`
  - `bad`
  - `operator bool`
  - `operator void*`
  - `operator!`
- 例外マスクの取得・設定
  - `exceptions`