名前空間
変種
操作

標準ライブラリヘッダー <contracts> (C++26)

From cppreference.com
 
 
標準ライブラリヘッダー
 

このヘッダーは言語サポートライブラリの一部です。

目次

名前空間 std::contracts に定義
契約違反の種類
(enum) [編集]
契約違反が発生した際の評価セマンティクス
(enum) [編集]
契約違反を引き起こした理由
(enum) [編集]
契約違反情報を保持する型
(class) [編集]

関数

名前空間 std::contracts に定義
デフォルトの契約違反ハンドラを呼び出す
(function) [編集]

[編集] 概要

// all freestanding
namespace std::contracts {
 
  enum class assertion_kind : /* unspecified */ {
    pre = 1,
    post = 2,
    assert = 3
  };
 
  enum class evaluation_semantic : /* unspecified */ {
    ignore = 1,
    observe = 2,
    enforce = 3,
    quick_enforce = 4
  };
 
  enum class detection_mode : /* unspecified */ {
    predicate_false = 1,
    evaluation_exception = 2
  };
 
  // class contract_violation
  class contract_violation;
 
  void invoke_default_contract_violation_handler(const contract_violation&);
}

[編集] クラス std::contracts::contract_violation

namespace std::contracts {
  class contract_violation
  {
    // no user−accessible constructor
  public:
    contract_violation(const contract_violation&) = delete;
    contract_violation& operator=(const contract_violation&) = delete;
    /* see description */ ~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;
  };
}
English 日本語 中文(简体) 中文(繁體)