Namespaces
Variants

std::contracts:: contract_violation

From cppreference.net
Utilities library
Contract support
Contract-violation information
contract_violation
(C++26)
Helper functions
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.

Contents

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.