Files
2025-10-25 03:02:53 +03:00

31 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[contracts.syn]
# 17 Language support library [[support]](./#support)
## 17.10 Contract-violation handling [[support.contract]](support.contract#contracts.syn)
### 17.10.1 Header <contracts> synopsis [contracts.syn]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/support.tex#L4387)
The header [<contracts>](#header:%3ccontracts%3e "17.10.1Header <contracts> synopsis[contracts.syn]") defines types
for reporting information about contract violations ([[basic.contract.eval]](basic.contract.eval "6.11.2Evaluation"))[.](#1.sentence-1)
[🔗](#header:%3ccontracts%3e)
// 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&);}