Namespaces
Variants

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

From cppreference.net
Standard library headers

Cet en-tête fait partie de la bibliothèque de support du langage .

Table des matières

Types

Défini dans l'espace de noms std::contracts
le type de l'assertion de contrat violée
(enum)
la sémantique d'évaluation lorsque la violation de contrat se produit
(enum)
la raison qui cause la violation de contrat
(enum)
le type contenant les informations de violation de contrat
(class)

Fonctions

Défini dans l'espace de noms std::contracts
invoque le gestionnaire de violation de contrat par défaut
(function)

Synopsis

// tous 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
  };
  // classe contract_violation
  class contract_violation;
  void invoke_default_contract_violation_handler(const contract_violation&);
}

Classe std :: contracts :: contract_violation

namespace std::contracts {
  class contract_violation
  {
    // constructeur non accessible par l'utilisateur
  public:
    contract_violation(const contract_violation&) = delete;
    contract_violation& operator=(const contract_violation&) = delete;
    /* voir description */ ~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;
  };
}