std::contracts::contract_violation
来自cppreference.com
在标头 <contracts> 定义
|
||
class contract_violation; |
(C++26 起) | |
类 std::contracts::contract_violation
定义了用来表示在以特定的求值语义对契约断言进行求值时检测到的契约违背的对象的类型。
此类型的对象只能在需要调用契约断言处理函数时由实现创建。用户不能直接创建这些对象。
[编辑] 成员函数
(构造函数) [弃置] |
用户无法构造 contract_violation 对象 (公开成员函数) |
operator= [弃置] |
无法对 contract_violation 对象复制 (公开成员函数) |
(析构函数) [可能为虚] |
析构 contract_violation 对象 (公开成员函数) |
通用契约违背信息 | |
kind |
返回违背的异常契约的种类 (公开成员函数) |
semantic |
返回契约违背发生时的求值语义 (公开成员函数) |
is_terminating |
返回求值语义是否为终止语义 (公开成员函数) |
detection_mode |
返回导致异常违背发生的原因 (公开成员函数) |
evaluation_exception |
返回指向从谓词求值中抛出的异常的 std::exception_ptr (公开成员函数) |
其他契约违背信息 | |
comment |
返回关于契约违背的解释性字符串 (公开成员函数) |
location |
返回指示契约违背位置的 std::source_location (公开成员函数) |
std::contracts::contract_violation::contract_violation
contract_violation( const contract_violation& ) = delete; |
(C++26 起) | |
复制构造函数被定义为弃置。std::contracts::contract_violation
不可复制构造 (CopyConstructible) 。
注解
其他构造函数仅供内部使用,用户无法访问。
std::contracts::contract_violation::operator=
contract_violation& operator=( const contract_violation& ) = delete; |
(C++26 起) | |
复制赋值运算符被定义为弃置。std::contracts::contract_violation
不可复制赋值 (CopyAssignable) 。
std::contracts::contract_violation::~contract_violation
/* 见下文 */ ~contract_violation(); |
(C++26 起) | |
析构 contract_violation
对象。
注解
析构函数是否为虚由实现定义。
std::contracts::contract_violation::kind
std::contracts::assertion_kind kind() const noexcept; |
(C++26 起) | |
返回值
返回与违背的契约断言的语法形式对应的枚举项的值。
std::contracts::contract_violation::semantic
std::contracts::evaluation_semantic semantic() const noexcept; |
(C++26 起) | |
返回值
返回与对违背的契约断言求值时的求值语义对应的枚举项的值。
std::contracts::contract_violation::is_terminating
bool is_terminating() const noexcept; |
(C++26 起) | |
返回值
如果求值语义是终止语义,那么就会返回 true。否则返回 false。
std::contracts::contract_violation::detection_mode
std::contracts::detection_mode detection_mode() const noexcept; |
(C++26 起) | |
返回值
返回与发生契约违背的原因对应的枚举项的值。
std::contracts::contract_violation::evaluation_exception
std::exception_ptr evaluation_exception() const noexcept; |
(C++26 起) | |
返回值
如果契约违背因在对谓词求值的过程中抛出异常而发生,那么返回指代该异常或其副本的 std::exception_ptr 对象。否则返回空 std::exception_ptr 对象。
std::contracts::contract_violation::comment
const char* comment() const noexcept; |
(C++26 起) | |
返回值
注解
C++ 标准建议返回的字符串应该包含违背的契约断言的谓词的文本表示,或在不希望存储文本表示的情况下返回空字符串。
std::contracts::contract_violation::location
std::source_location location() const noexcept; |
(C++26 起) | |
返回值
返回其值由实现定义的 std::source_location 对象。
注解
C++ 标准建议返回的值应该是默认构造的 std::source_location 对象或以下指定的标识了违背的契约断言的值:
- 只要有可能的情况下,如果违背的契约断言是前条件断言,那么应该返回函数调用的源位置。
- 否则应该返回契约断言的源位置。