std::contracts:: contract_violation
|
Defined in header
<contracts>
|
||
|
class
contract_violation
;
|
(since C++26) | |
The class
std::contracts::contract_violation
defines 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.
Objects of this type can only be created by the implementation when the contract-violation handler needs to be invoked. Users cannot create such objects directly.
Member functions
|
(constructor)
[deleted]
|
contract_violation
objects cannot be constructed by users
(public member function) |
|
operator=
[deleted]
|
contract_violation
objects cannot be assigned
(public member function) |
|
(destructor)
[possibly virtual]
|
destructs the
contract_violation
object
(public member function) |
General contract-violation information |
|
|
kind
|
returns the kind of the contract assertion violated
(public member function) |
|
semantic
|
returns the evaluation semantic when the contract violation occurs
(public member function) |
|
is_terminating
|
returns whether the evaluation semantic is terminating
(public member function) |
|
detection_mode
|
returns the reason that causes the contract violation
(public member function) |
|
evaluation_exception
|
returns an
std::exception_ptr
to the exception thrown from the predicate evaulation
(public member function) |
Miscellaneous contract-violation information |
|
|
comment
|
returns the explanatory string about the contract violation
(public member function) |
|
location
|
returns a
std::source_location
indicating the location of the contract violation
(public member function) |
std::contracts::contract_violation:: contract_violation
|
contract_violation
(
const
contract_violation
&
)
=
delete
;
|
(since C++26) | |
The copy destructor is defined as deleted.
std::contracts::contract_violation
is not
CopyConstructible
.
Notes
Other constructors are for internal usage only, they are not user-accessible.
std::contracts::contract_violation:: operator=
|
contract_violation
&
operator
=
(
const
contract_violation
&
)
=
delete
;
|
(since C++26) | |
The copy assignment operator is defined as deleted.
std::contracts::contract_violation
is not
CopyAssignable
.
std::contracts::contract_violation:: ~contract_violation
|
/* see below */
~contract_violation
(
)
;
|
(since C++26) | |
Destructs the
contract_violation
object.
Notes
It is implementation-defined whether the destructor is virtual.
std::contracts::contract_violation:: kind
|
std
::
contracts
::
assertion_kind
kind
(
)
const
noexcept
;
|
(since C++26) | |
Return value
Returns the enumerator value corresponding to the syntactic form of the violated contract assertion.
std::contracts::contract_violation:: semantic
|
std
::
contracts
::
evaluation_semantic
semantic
(
)
const
noexcept
;
|
(since C++26) | |
Return value
Returns the enumerator value corresponding to the evaluation semantic with which the violated contract assertion was evaluated.
std::contracts::contract_violation:: is_terminating
|
bool
is_terminating
(
)
const
noexcept
;
|
(since C++26) | |
Return value
If the evaluation semantic is a terminating semantic , returns true . Otherwise returns false .
std::contracts::contract_violation:: detection_mode
|
std
::
contracts
::
detection_mode
detection_mode
(
)
const
noexcept
;
|
(since C++26) | |
Return value
Returns the enumerator value corresponding to the reasons that cause the contract violation.
std::contracts::contract_violation:: evaluation_exception
|
std::
exception_ptr
evaluation_exception
(
)
const
noexcept
;
|
(since C++26) | |
Return value
If the contract violation occurred because the evaluation of the predicate exited via an exception, returns an std::exception_ptr object that refers to that exception or a copy of that exception. Otherwise, returns a null std::exception_ptr object.
std::contracts::contract_violation:: comment
|
const
char
*
comment
(
)
const
noexcept
;
|
(since C++26) | |
Return value
Returns an implementation-defined null-terminated multibyte string in the ordinary literal encoding .
Notes
The C++ standard recommends that 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.
std::contracts::contract_violation:: location
|
std::
source_location
location
(
)
const
noexcept
;
|
(since C++26) | |
Return value
Returns a std::source_location object with implementation-defined value.
Notes
The C++ standard recommends that the value returned should be a default constructed std::source_location object or a value identifying the violated contract assertion:
- When possible, if the violated contract assertion was a precondition assertion , the source location of the function invocation should be returned.
- Otherwise, the source location of the contract assertion should be returned.