Namespaces
Variants

Standard library header <contracts> (C++26)

From cppreference.net
Standard library headers

Este encabezado es parte de la biblioteca de soporte del lenguaje .

Contenidos

Tipos

Definido en el espacio de nombres std::contracts
el tipo de aserción de contrato violada
(enum)
la semántica de evaluación cuando ocurre la violación del contrato
(enum)
la razón que causa la violación del contrato
(enum)
el tipo que contiene la información de violación de contrato
(class)

Funciones

Definido en el espacio de nombres std::contracts
invoca el manejador predeterminado de violación de contrato
(function)

Sinopsis

// todos freestanding
namespace std::contracts {
  enum class assertion_kind : /* no especificado */ {
    pre = 1,
    post = 2,
    assert = 3
  };
  enum class evaluation_semantic : /* no especificado */ {
    ignore = 1,
    observe = 2,
    enforce = 3,
    quick_enforce = 4
  };
  enum class detection_mode : /* no especificado */ {
    predicate_false = 1,
    evaluation_exception = 2
  };
  // clase contract_violation
  class contract_violation;
  void invoke_default_contract_violation_handler(const contract_violation&);
}

Clase std :: contracts :: contract_violation

namespace std::contracts {
  class contract_violation
  {
    // sin constructor accesible por el usuario
  public:
    contract_violation(const contract_violation&) = delete;
    contract_violation& operator=(const contract_violation&) = delete;
    /* ver descripción */ ~contract_violation();
    const char* comment() const noexcept;
    contracts::detection_mode detection_mode() const noexcept;
    exception_ptr evaluation_exception() const noexcept;
    bool is_terminating() const noexcept;
    assertion_kind kind() const noexcept;
    source_location location() const noexcept;
    evaluation_semantic semantic() const noexcept;
  };
}