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) |
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::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.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/contract/contract_violation