Namespaces
Variants

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

From es.cppreference.net
Standard library headers

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

Contenido

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

// 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&);
}

Clase 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;
  };
}