Spec-Zone.ru › C++

Заголовок стандартной библиотеки <contracts> (C++26)

Этот заголовок входит в библиотеку поддержки языка.

Типы

Определено в пространстве имён std::contracts
assertion_kind
(C++26)
вид нарушенного контрактного утверждения
(перечисление)
evaluation_semantic
(C++26)
семантика вычисления при возникновении нарушения контракта
(перечисление)
detection_mode
(C++26)
причина нарушения контракта
(перечисление)
contract_violation
(C++26)
тип, содержащий сведения о нарушении контракта
(класс)

Функции

Определено в пространстве имён std::contracts
invoke_default_contract_violation_handler
(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

Spec-Zone.ru

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