[support.contract.violation] (original) (raw)

17 Language support library [support]

17.10 Contract-violation handling [support.contract]

17.10.3 Class contract_violation [support.contract.violation]

The class contract_violationdefines the type of objects used to represent a contract violation that has been detected during the evaluation of a contract assertion with a particular evaluation semantic ([basic.contract.eval]).

Objects of this type can be created only by the implementation.

It isimplementation-defined whether the destructor is virtual.

const char* comment() const noexcept;

Returns: Animplementation-definedntmbs in the ordinary literal encoding ([lex.charset]).

Recommended practice: The string returned should contain a textual representation of the predicate of the violated contract assertion or an empty string if storing a textual representation is undesired.

[Note 1:

The string can represent a truncated, reformatted, or summarized rendering of the predicate, before or after preprocessing.

— _end note_]

contracts::detection_mode detection_mode() const noexcept;

Returns: The enumerator value corresponding to the manner in which the contract violation was identified.

exception_ptr evaluation_exception() const noexcept;

Returns: If the contract violation occurred because the evaluation of the predicate exited via an exception, an exception_ptr object that refers to that exception or a copy of that exception; otherwise, a null exception_ptr object.

bool is_terminating() const noexcept;

Returns: true if the evaluation semantic is a terminating semantic ([basic.contract.eval]); otherwise, false.

assertion_kind kind() const noexcept;

Returns: The enumerator value corresponding to the syntactic form of the violated contract assertion.

source_location location() const noexcept;

Returns: A source_location object withimplementation-defined value.

Recommended practice: The value returned should be a default constructed source_location object or a value identifying the violated contract assertion:

evaluation_semantic semantic() const noexcept;

Returns: The enumerator value corresponding to the evaluation semantic with which the violated contract assertion was evaluated.