标准库标头 <contracts> (C++26)
来自cppreference.com
此标头是语言支持库的一部分。
类型 | ||
在命名空间
std::contracts 定义 | ||
(C++26) |
违背的契约断言的种类 (枚举) | |
(C++26) |
发生契约违背时的求值语义 (枚举) | |
(C++26) |
导致契约违背的原因 (枚举) | |
(C++26) |
持有契约违背信息的类型 (类) | |
函数 | ||
在命名空间
std::contracts 定义 | ||
调用默认的契约违背处理函数 (函数) |
[编辑] 概要
// 全部为独立 namespace std::contracts { enum class assertion_kind : /* 未指明 */ { pre = 1, post = 2, assert = 3 }; enum class evaluation_semantic : /* 未指明 */ { ignore = 1, observe = 2, enforce = 3, quick_enforce = 4 }; enum class detection_mode : /* 未指明 */ { predicate_false = 1, evaluation_exception = 2 }; // 类 contract_violation class contract_violation; void invoke_default_contract_violation_handler(const contract_violation&); }
[编辑] 类 std::contracts::contract_violation
namespace std::contracts { class contract_violation { // 没有用户可访问的构造函数 public: contract_violation(const contract_violation&) = delete; contract_violation& operator=(const contract_violation&) = delete; /* 见描述 */ ~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; }; }