名稱空間
變體
操作

標準庫標頭檔案 <contracts> (C++26)

來自 cppreference.com
 
 
標準庫標頭檔案
演算法
<algorithm>
<numeric>
字串
<cctype>
<cstring>
<cuchar> (C++11)
<cwchar>
<cwctype>
<string_view> (C++17)
<string>
文字處理
<clocale>
<codecvt> (C++11/17/26*)
<locale>
<regex> (C++11)
<text_encoding> (C++26)   
數值
<cfenv> (C++11)
<cmath>
<complex>
<linalg> (C++26)
<numbers> (C++20)
<random> (C++11)
<simd> (C++26)
<valarray>
時間
<chrono> (C++11)
<ctime>
C 相容性
<ccomplex> (C++11/17/20*)
<ciso646> (until C++20)
<cstdalign> (C++11/17/20*)
<cstdbool> (C++11/17/20*)
<ctgmath> (C++11/17/20*)
 

此標頭檔案是語言支援庫的一部分。

目錄

型別

定義於名稱空間 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;
  };
}