Spec-Zone.ru › C++

std::contracts::contract_violation

Определено в заголовочном файле <contracts>
class contract_violation;
(начиная с C++26)

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

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

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

(конструктор)
[удалён]
Объекты contract_violation не могут конструироваться пользователями
(открытая функция-член)
operator=
[удалён]
Объектам contract_violation нельзя присваивать значения
(открытая функция-член)
(деструктор)
[возможно, виртуальный]
уничтожает объект contract_violation
(открытая функция-член)
Общая информация о нарушении контракта
kind
возвращает вид нарушенной проверки контракта
(открытая функция-член)
semantic
возвращает семантику вычисления, при которой происходит нарушение контракта
(открытая функция-член)
is_terminating
возвращает признак того, что семантика вычисления является завершающей
(открытая функция-член)
detection_mode
возвращает причину нарушения контракта
(открытая функция-член)
Прочая информация о нарушении контракта
comment
возвращает поясняющую строку о нарушении контракта
(открытая функция-член)
location
возвращает std::source_location, указывающий место нарушения контракта
(открытая функция-член)

std::contracts::contract_violation::contract_violation

contract_violation( const contract_violation& ) = delete;
(начиная с 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();
(начиная с C++26)

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

Примечания

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

std::contracts::contract_violation::kind

std::contracts::assertion_kind kind() const noexcept;
(начиная с C++26)

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

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

std::contracts::contract_violation::semantic

std::contracts::evaluation_semantic semantic() const noexcept;
(начиная с 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;
(начиная с C++26)

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

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

std::contracts::contract_violation::comment

const char* comment() const noexcept;
(начиная с C++26)

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

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

Примечания

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

std::contracts::contract_violation::location

std::source_location location() const noexcept;
(начиная с C++26)

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

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

Примечания

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

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/contract/contract_violation

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API