Namespaces
Variants

std::contracts:: contract_violation

From cppreference.net
Utilities library
Contract support
Contract-violation information
contract_violation
(C++26)
Helper functions
Определено в заголовочном файле <contracts>
class contract_violation ;
(since C++26)

Класс std::contracts::contract_violation определяет тип объектов, используемых для представления нарушения контракта, которое было обнаружено во время оценки контрактного утверждения с определённой семантикой оценки.

Объекты этого типа могут быть созданы только реализацией, когда необходимо вызвать обработчик нарушения контракта . Пользователи не могут создавать такие объекты напрямую.

Содержание

Функции-члены

(constructor)
[deleted]
contract_violation объекты не могут быть созданы пользователями
(public member function)
operator=
[deleted]
contract_violation объекты не могут быть присвоены
(public member function)
(destructor)
[possibly virtual]
уничтожает объект contract_violation
(public member function)
Общая информация о нарушении контракта
kind
возвращает тип нарушенного утверждения контракта
(public member function)
semantic
возвращает семантику вычисления при возникновении нарушения контракта
(public member function)
is_terminating
возвращает, является ли семантика вычисления завершающей
(public member function)
detection_mode
возвращает причину, вызвавшую нарушение контракта
(public member function)
evaluation_exception
возвращает std::exception_ptr на исключение, выброшенное при вычислении предиката
(public member function)
Дополнительная информация о нарушении контракта
comment
возвращает пояснительную строку о нарушении контракта
(public member function)
location
возвращает std::source_location указывающий местоположение нарушения контракта
(public member function)

std::contracts::contract_violation:: contract_violation

contract_violation ( const contract_violation & ) = delete ;
(since C++26)

Конструктор копирования определен как удаленный. std::contracts::contract_violation не является CopyConstructible .

Примечания

Другие конструкторы предназначены только для внутреннего использования и недоступны пользователю.

std::contracts::contract_violation:: operator=

contract_violation & operator = ( const contract_violation & ) = delete ;
(начиная с C++26)

Оператор копирующего присваивания определен как удаленный. std::contracts::contract_violation не удовлетворяет требованиям CopyAssignable .

std::contracts::contract_violation:: ~contract_violation

/* see below */ ~contract_violation ( ) ;
(since C++26)

Уничтожает объект contract_violation .

Примечания

Определяется реализацией, является ли деструктор виртуальным.

std::contracts::contract_violation:: kind

std :: contracts :: assertion_kind kind ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Возвращает значение перечисления, соответствующее синтаксической форме нарушенного контрактного утверждения.

std::contracts::contract_violation:: semantic

std :: contracts :: evaluation_semantic semantic ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Возвращает значение перечисления, соответствующее семантике вычисления, с которой была вычислена нарушенная контрактная проверка.

std::contracts::contract_violation:: is_terminating

bool is_terminating ( ) const noexcept ;
(начиная с C++26)

Возвращаемое значение

Если семантика оценки является завершающей семантикой , возвращает true . В противном случае возвращает false .

std::contracts::contract_violation:: detection_mode

std :: contracts :: detection_mode detection_mode ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Возвращает значение перечисления, соответствующее причинам, вызвавшим нарушение контракта.

std::contracts::contract_violation:: evaluation_exception

std:: exception_ptr evaluation_exception ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Если нарушение контракта произошло из-за того, что вычисление предиката завершилось через исключение, возвращает объект std::exception_ptr , который ссылается на это исключение или его копию. В противном случае возвращает нулевой объект std::exception_ptr .

std::contracts::contract_violation:: comment

const char * comment ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Возвращает определяемую реализацией многобайтовую строку с нулевым завершителем в обычной кодировке литералов .

Примечания

Стандарт C++ рекомендует, чтобы возвращаемая строка содержала текстовое представление предиката нарушенного контрактного утверждения или пустую строку, если сохранение текстового представления нежелательно.

std::contracts::contract_violation:: location

std:: source_location location ( ) const noexcept ;
(since C++26)

Возвращаемое значение

Возвращает объект std::source_location с реализационно-определенным значением.

Примечания

Стандарт C++ рекомендует, чтобы возвращаемое значение было объектом std::source_location , созданным по умолчанию, или значением, идентифицирующим нарушенное контрактное утверждение:

  • По возможности, если нарушенное контрактное утверждение было утверждением предусловия , должно возвращаться исходное местоположение вызова функции.
  • В противном случае должно возвращаться исходное местоположение контрактного утверждения.