標準ライブラリヘッダー <contracts> (C++26)
From cppreference.com
このヘッダーは言語サポートライブラリの一部です。
型 | ||
| 名前空間
std::contracts に定義 | ||
| (C++26) |
契約違反の種類 (enum) | |
| (C++26) |
契約違反が発生した際の評価セマンティクス (enum) | |
| (C++26) |
契約違反を引き起こした理由 (enum) | |
| (C++26) |
契約違反情報を保持する型 (class) | |
関数 | ||
| 名前空間
std::contracts に定義 | ||
| デフォルトの契約違反ハンドラを呼び出す (function) | ||
[編集] 概要
// all freestanding namespace std::contracts { enum class assertion_kind : /* unspecified */ { pre = 1, post = 2, assert = 3 }; enum class evaluation_semantic : /* unspecified */ { ignore = 1, observe = 2, enforce = 3, quick_enforce = 4 }; enum class detection_mode : /* unspecified */ { predicate_false = 1, evaluation_exception = 2 }; // class contract_violation class contract_violation; void invoke_default_contract_violation_handler(const contract_violation&); }
[編集] クラス std::contracts::contract_violation
namespace std::contracts { class contract_violation { // no user−accessible constructor public: contract_violation(const contract_violation&) = delete; contract_violation& operator=(const contract_violation&) = delete; /* see description */ ~contract_violation(); const char* comment() const noexcept; contracts::detection_mode detection_mode() const noexcept; exception_ptr evaluation_exception() const noexcept; bool is_terminating() const noexcept; assertion_kind kind() const noexcept; source_location location() const noexcept; evaluation_semantic semantic() const noexcept; }; }