Заголовок стандартной библиотеки <contracts> (C++26)
Этот заголовок входит в библиотеку поддержки языка.
Типы |
|
Определено в пространстве имён std::contracts |
|
|---|---|
|
(C++26) | вид нарушенного контрактного утверждения (перечисление) |
|
(C++26) | семантика вычисления при возникновении нарушения контракта (перечисление) |
|
(C++26) | причина нарушения контракта (перечисление) |
|
(C++26) | тип, содержащий сведения о нарушении контракта (класс) |
Функции |
|
Определено в пространстве имён std::contracts |
|
|
(C++26) | вызывает обработчик нарушений контракта по умолчанию (функция) |
Обзор
// all freestanding
namespace std::contracts {
enum class assertion_kind : /* unspecified */
{
pre = 1,
post = 2,
assert = 3
};
enum class evaluation_semantic : /* unspecified */
{
ignore = 1,
observe = 2,
enforce = 3,
quick_enforce = 4
};
enum class detection_mode : /* unspecified */
{
predicate_false = 1,
evaluation_exception = 2
};
class contract_violation;
void invoke_default_contract_violation_handler(const contract_violation&);
}
Класс std::contracts::contract_violation
namespace std::contracts {
class contract_violation
{
// no user-accessible constructor
public:
contract_violation(const contract_violation&) = delete;
contract_violation& operator=(const contract_violation&) = delete;
/* see description */ ~contract_violation();
const char* comment() const noexcept;
contracts::detection_mode detection_mode() const noexcept;
bool is_terminating() const noexcept;
assertion_kind kind() const noexcept;
source_location location() const noexcept;
evaluation_semantic semantic() const noexcept;
};
}
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/contracts