Namespaces
Variants

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

From fr.cppreference.net
Standard library headers

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

Sommaire

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

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

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