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