Namespaces
Variants

Standard library header <contracts> (C++26)

From cppreference.net
Standard library headers

此头文件属于 语言支持 库的一部分。

目录

类型

定义于命名空间 std::contracts
被违反的合约断言类型
(枚举)
合约违反发生时的求值语义
(枚举)
导致合约违反的原因
(枚举)
保存合约违反信息的类型
(类)

函数

定义于命名空间 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;
  };
}