最終更新日時: 2026年01月25日 13時25分34秒 (JST)
rotarymars が更新

履歴 編集

enum
<contracts>

# std::contracts::evaluation_semantic(C++26)

    namespace std::contracts {
      enum class evaluation_semantic : unspecified {
        ignore = 1,
        observe = 2,
        enforce = 3,
        quick_enforce = 4 // ,
        // assume = 5 <-- 将来追加予定
      };
    }

## 概要

契約違反をどのように評価するかを表す列挙型。

これの他に、処理系定義のものを定めてもよい。

### 列挙子

列挙子 | 値 | 説明
--- | --- | ---
`ignore` | 1 | 述語を評価しない
`observe` | 2 | 述語を評価し、違反時にハンドラを呼ぶが、実行を継続する
`enforce` | 3 | 述語を評価し、違反時にハンドラを呼び、その後プログラムを終了する
`quick_enforce` | 4 | 述語を評価し、違反時にハンドラを呼ばずにプログラムを終了する

## バージョン

### 言語

- C++26

### 処理系

- Clang: ?
- GCC: ?
- ICC: ?
- Visual C++: ?

## 関連項目

- 契約プログラミング

## 参照

- P2900R14 Contracts for C++