1.5 KiB
[contracts.syn]
17 Language support library [support]
17.10 Contract-violation handling [support.contract]
17.10.1 Header synopsis [contracts.syn]
The header defines types for reporting information about contract violations ([basic.contract.eval]).
// all freestandingnamespace 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 {// no user-accessible constructorpublic: contract_violation(const contract_violation&) = delete; contract_violation& operator=(const contract_violation&) = delete; see below ~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; }; void invoke_default_contract_violation_handler(const contract_violation&);}