Namespaces
Variants

std::contracts:: contract_violation

From cppreference.net
Utilities library
Contract support
Contract-violation information
contract_violation
(C++26)
Helper functions
定义于头文件 <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 对象,或标识违反契约断言的值:

  • 在可能的情况下,如果违反的契约断言是 前置条件断言 ,则应返回函数调用的源位置。
  • 否则,应返回契约断言的源位置。