std::contracts:: contract_violation
|
定义于头文件
<contracts>
|
||
|
class
contract_violation
;
|
(C++26 起) | |
类
std::contracts::contract_violation
定义了用于表示在具有特定求值语义的
合约断言
求值期间检测到的合约违规的对象类型。
此类型的对象仅当需要调用 契约违反处理器 时,由实现创建。用户无法直接创建此类对象。
成员函数
|
(构造函数)
[deleted]
|
contract_violation
对象无法由用户构造
(公开成员函数) |
|
operator=
[deleted]
|
contract_violation
对象不可被赋值
(公开成员函数) |
|
(析构函数)
[possibly virtual]
|
销毁
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
;
|
(since C++26) | |
拷贝构造函数被定义为删除。
std::contracts::contract_violation
不满足
可复制构造
要求。
注释
其他构造函数仅供内部使用,用户无法访问。
std::contracts::contract_violation:: operator=
|
contract_violation
&
operator
=
(
const
contract_violation
&
)
=
delete
;
|
(since C++26) | |
复制赋值运算符被定义为已删除。
std::contracts::contract_violation
不满足
可复制赋值
要求。
std::contracts::contract_violation:: ~contract_violation
|
/* see below */
~contract_violation
(
)
;
|
(since C++26) | |
销毁
contract_violation
对象。
备注
析构函数是否为虚函数由实现定义。
std::contracts::contract_violation:: kind
|
std
::
contracts
::
assertion_kind
kind
(
)
const
noexcept
;
|
(since C++26) | |
返回值
返回与违反的合约断言的语法形式相对应的枚举值。
std::contracts::contract_violation:: semantic
|
std
::
contracts
::
evaluation_semantic
semantic
(
)
const
noexcept
;
|
(since C++26) | |
返回值
返回与被违反的合约断言所采用的求值语义相对应的枚举值。
std::contracts::contract_violation:: is_terminating
|
bool
is_terminating
(
)
const
noexcept
;
|
(since C++26) | |
返回值
如果求值语义是 终止语义 ,则返回 true 。否则返回 false 。
std::contracts::contract_violation:: detection_mode
|
std
::
contracts
::
detection_mode
detection_mode
(
)
const
noexcept
;
|
(since C++26) | |
返回值
返回与导致契约违反的原因相对应的枚举值。
std::contracts::contract_violation:: evaluation_exception
|
std::
exception_ptr
evaluation_exception
(
)
const
noexcept
;
|
(since C++26) | |
返回值
若契约违反是因谓词求值通过异常退出而发生,则返回引用该异常或其副本的 std::exception_ptr 对象。否则返回空的 std::exception_ptr 对象。
std::contracts::contract_violation:: comment
|
const
char
*
comment
(
)
const
noexcept
;
|
(since C++26) | |
返回值
返回一个实现定义的 以空字符结尾的多字节字符串 ,采用 普通字面量编码 。
备注
C++标准建议返回的字符串应包含被违反合约断言的谓词的文本表示,如果不需要存储文本表示,则返回空字符串。
std::contracts::contract_violation:: location
|
std::
source_location
location
(
)
const
noexcept
;
|
(since C++26) | |
返回值
返回一个具有实现定义值的 std::source_location 对象。
注解
C++标准建议返回值应为默认构造的 std::source_location 对象,或标识违反契约断言的值:
- 在可能的情况下,如果违反的契约断言是 前置条件断言 ,则应返回函数调用的源位置。
- 否则,应返回契约断言的源位置。