Namespaces
Variants

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

From de.cppreference.net
Standard library headers

Dieser Header ist Teil der Sprachunterstützungsbibliothek .

Inhalte

Typen

Definiert im Namespace std::contracts
die Art der verletzten Vertragsassertion
(enum)
die Auswertungssemantik bei Auftreten der Vertragsverletzung
(enum)
der Grund, der die Vertragsverletzung verursacht
(enum)
der Typ, der die Vertragsverletzungsinformationen enthält
(class)

Funktionen

Definiert im Namespace std::contracts
ruft den Standard-Vertragsverletzungshandler auf
(function)

Übersicht

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

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