Namespaces
Variants

std::contracts::contract_violation

С ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (базовые типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Программные утилиты
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Реляционные операторы (устарело в C++20)
 
Поддержка контрактов
Информация о нарушении контракта
Вспомогательные функции
 
Определён в заголовке <contracts>
class contract_violation;
(начиная с 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:: comment

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

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

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

Примечания

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

std::contracts::contract_violation:: location

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

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

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

Примечания

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

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