Namespaces
Variants

std::contracts:: contract_violation

From cppreference.net
Utilities library
Contract support
Contract-violation information
contract_violation
(C++26)
Helper functions
Definiert im Header <contracts>
class contract_violation ;
(seit C++26)

Die Klasse std::contracts::contract_violation definiert den Typ von Objekten, die verwendet werden, um einen Vertragsverstoß darzustellen, der während der Auswertung einer Vertragsassertion mit einer bestimmten Auswertungssemantik erkannt wurde.

Objekte dieses Typs können nur von der Implementierung erstellt werden, wenn der Contract-Verletzungs-Handler aufgerufen werden muss. Benutzer können solche Objekte nicht direkt erstellen.

Inhaltsverzeichnis

Memberfunktionen

(Konstruktor)
[gelöscht]
contract_violation Objekte können nicht durch Benutzer erstellt werden
(öffentliche Elementfunktion)
operator=
[gelöscht]
contract_violation Objekte können nicht zugewiesen werden
(öffentliche Elementfunktion)
(Destruktor)
[möglicherweise virtuell]
zerstört das contract_violation Objekt
(öffentliche Elementfunktion)
Allgemeine Vertragsverletzungsinformationen
kind
gibt die Art der verletzten Vertragsassertion zurück
(öffentliche Elementfunktion)
semantic
gibt die Auswertungssemantik zurück, wenn die Vertragsverletzung auftritt
(öffentliche Elementfunktion)
is_terminating
gibt zurück, ob die Auswertungssemantik terminierend ist
(öffentliche Elementfunktion)
detection_mode
gibt den Grund zurück, der die Vertragsverletzung verursacht
(öffentliche Elementfunktion)
evaluation_exception
gibt einen std::exception_ptr auf die Ausnahme zurück, die von der Prädikatauswertung geworfen wurde
(öffentliche Elementfunktion)
Verschiedene Vertragsverletzungsinformationen
comment
gibt die erläuternde Zeichenkette über die Vertragsverletzung zurück
(öffentliche Elementfunktion)
location
gibt einen std::source_location zurück, der den Ort der Vertragsverletzung angibt
(öffentliche Elementfunktion)

std::contracts::contract_violation:: contract_violation

contract_violation ( const contract_violation & ) = delete ;
(seit C++26)

Der Kopierkonstruktor ist als gelöscht definiert. std::contracts::contract_violation ist nicht CopyConstructible .

Anmerkungen

Andere Konstruktoren sind nur für den internen Gebrauch bestimmt und nicht für Benutzer zugänglich.

std::contracts::contract_violation:: operator=

contract_violation & operator = ( const contract_violation & ) = delete ;
(seit C++26)

Der Kopierzuweisungsoperator ist als gelöscht definiert. std::contracts::contract_violation ist nicht CopyAssignable .

std::contracts::contract_violation:: ~contract_violation

/* siehe unten */ ~contract_violation ( ) ;
(seit C++26)

Zerstört das contract_violation -Objekt.

Hinweise

Es ist implementierungsdefiniert, ob der Destruktor virtuell ist.

std::contracts::contract_violation:: kind

std :: contracts :: assertion_kind kind ( ) const noexcept ;
(seit C++26)

Rückgabewert

Gibt den Enumerator-Wert zurück, der der syntaktischen Form der verletzten Vertragsassertion entspricht.

std::contracts::contract_violation:: semantic

std :: contracts :: evaluation_semantic semantic ( ) const noexcept ;
(seit C++26)

Rückgabewert

Gibt den Enumerator-Wert zurück, der dem Auswertungssemantik entspricht, mit dem die verletzte Contract-Assertion ausgewertet wurde.

std::contracts::contract_violation:: is_terminating

bool is_terminating ( ) const noexcept ;
(seit C++26)

Rückgabewert

Wenn die Auswertungssemantik eine terminierende Semantik ist, gibt true zurück. Andernfalls gibt false zurück.

std::contracts::contract_violation:: detection_mode

std :: contracts :: detection_mode detection_mode ( ) const noexcept ;
(seit C++26)

Rückgabewert

Gibt den Enumerator-Wert zurück, der den Gründen entspricht, die den Vertragsverstoß verursacht haben.

std::contracts::contract_violation:: evaluation_exception

std:: exception_ptr evaluation_exception ( ) const noexcept ;
(seit C++26)

Rückgabewert

Wenn der Vertragsverstoß aufgetreten ist, weil die Auswertung des Prädikats über eine Exception beendet wurde, gibt ein std::exception_ptr Objekt zurück, das auf diese Exception oder eine Kopie dieser Exception verweist. Andernfalls gibt ein null std::exception_ptr Objekt zurück.

std::contracts::contract_violation:: comment

const char * comment ( ) const noexcept ;
(seit C++26)

Rückgabewert

Gibt einen implementierungsdefinierten nullterminierten Multibyte-String in der gewöhnlichen Literalkodierung zurück.

Anmerkungen

Der C++-Standard empfiehlt, dass der zurückgegebene String eine textuelle Darstellung des Prädikats der verletzten Vertragsassertion enthalten sollte oder einen leeren String, falls das Speichern einer textuellen Darstellung unerwünscht ist.

std::contracts::contract_violation:: location

std:: source_location location ( ) const noexcept ;
(seit C++26)

Rückgabewert

Gibt ein std::source_location -Objekt mit implementierungsdefiniertem Wert zurück.

Anmerkungen

Der C++-Standard empfiehlt, dass der zurückgegebene Wert ein standardkonstruiertes std::source_location -Objekt oder ein Wert sein sollte, der die verletzte Vertragsassertion identifiziert:

  • Wenn möglich, sollte bei einer verletzten Precondition-Assertion die Quellposition des Funktionsaufrufs zurückgegeben werden.
  • Andernfalls sollte die Quellposition der Vertragsassertion zurückgegeben werden.