最終更新日時(UTC):
が更新

履歴 編集

<contracts>

contracts(C++26)

概要

<contracts>ヘッダでは、C++における契約プログラミングのサポートを提供する。

契約プログラミングは、関数やクラスの前提条件、事後条件、およびアサーションを明示的に指定するプログラミング手法である。これらの条件が満たされない場合、プログラムは契約違反を報告する。

このヘッダで提供される機能は、ユーザー定義の契約違反ハンドラ(handle_contract_violation関数)を記述するために使用することを主な目的としており、契約アサーション(prepostcontract_assert)を記述するためにこのヘッダをインクルードする必要はない。

このヘッダのすべての宣言は名前空間std::contractsに属する。

列挙型

名前 説明 対応バージョン
assertion_kind 契約アサーションの種類(enum) C++26
evaluation_semantic 契約アサーションの評価セマンティクス(enum) C++26
detection_mode 契約違反の検出方法(enum) C++26

クラス

名前 説明 対応バージョン
contract_violation 契約違反に関する情報 (class) C++26

関数

名前 説明 対応バージョン
invoke_default_contract_violation_handler デフォルトの契約違反ハンドラを呼び出す(function) C++26

機能テストマクロ

マクロ名 説明 対応バージョン
__cpp_lib_contracts ??? <contracts>ヘッダが利用可能かを検出する C++26

言語機能(prepostcontract_assert構文)の検出には__cpp_contractsマクロを使用する。ライブラリと言語機能は異なるベンダーから提供される可能性があるため、別々のマクロが用意されている。

バージョン

言語

  • C++26

処理系

関連項目

参照