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 : /* 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
  };
  // 클래스 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;
  };
}