Namespaces
Variants

std:: bad_expected_access

From cppreference.net
Utilities library
Definiert im Header <expected>
template < class E >
class bad_expected_access : public std :: bad_expected_access < void >
(1) (seit C++23)
template <>
class bad_expected_access < void > : public std:: exception
(2) (seit C++23)
1) Definiert einen Objekttyp, der von std::expected::value geworfen wird, wenn auf ein expected-Objekt zugegriffen wird, das einen unerwarteten Wert enthält. bad_expected_access<E> speichert eine Kopie des unerwarteten Werts.
2) bad_expected_access < void > ist die Basisklasse aller anderen bad_expected_access Spezialisierungen.
Alle Memberfunktionen von std::bad_expected_access sind constexpr : Es ist möglich, std::bad_expected_access -Objekte in der Auswertung eines konstanten Ausdrucks zu erstellen und zu verwenden.

Allerdings können std::bad_expected_access -Objekte im Allgemeinen nicht constexpr sein, da jeder dynamisch allokierte Speicher in derselben Auswertung des konstanten Ausdrucks freigegeben werden muss.

(since C++26)

Inhaltsverzeichnis

Mitglieder der primären Vorlage

(Konstruktor)
konstruiert ein bad_expected_access Objekt
(öffentliche Elementfunktion)
error
gibt den gespeicherten Wert zurück
(öffentliche Elementfunktion)
what
gibt die erklärende Zeichenkette zurück
(öffentliche Elementfunktion)

std::bad_expected_access:: bad_expected_access

explicit bad_expected_access ( E e ) ;
(seit C++23)
(constexpr seit C++26)

Konstruiert ein neues bad_expected_access<E> -Objekt. Initialisiert den gespeicherten Wert mit std::move(e) .

std::bad_expected_access:: error

const E & error ( ) const & noexcept ;
(1) (seit C++23)
(constexpr seit C++26)
E & error ( ) & noexcept ;
(2) (seit C++23)
(constexpr seit C++26)
const E && error ( ) const && noexcept ;
(3) (seit C++23)
(constexpr seit C++26)
E && error ( ) && noexcept ;
(4) (seit C++23)
(constexpr seit C++26)

Gibt eine Referenz auf den gespeicherten Wert zurück.

std::bad_expected_access:: what

const char * what ( ) const noexcept override ;
(seit C++23)
(constexpr seit C++26)

Gibt die erklärende Zeichenkette zurück.

Rückgabewert

Zeiger auf eine nullterminierte Zeichenkette mit erklärenden Informationen. Die Zeichenkette ist geeignet für Konvertierung und Anzeige als std::wstring . Der Zeiger ist garantiert mindestens so lange gültig, bis das Ausnahmeobjekt, von dem er erhalten wurde, zerstört wird, oder bis eine nicht-konstante Memberfunktion (z.B. der Kopierzuweisungsoperator) auf dem Ausnahmeobjekt aufgerufen wird.

Die zurückgegebene Zeichenkette ist während konstanter Auswertung mit der gewöhnlichen Literalkodierung kodiert.

(seit C++26)

Anmerkungen

Implementierungen dürfen, sind aber nicht verpflichtet, what() zu überschreiben.

Geerbt von std:: bad_expected_access < void >

Mitglieder der bad_expected_access < void > Spezialisierung

(Konstruktor)
konstruiert ein bad_expected_access < void > Objekt
(geschützte Member-Funktion)
(Destruktor)
zerstört das bad_expected_access < void > Objekt
(geschützte Member-Funktion)
operator=
ersetzt das bad_expected_access < void > Objekt
(geschützte Member-Funktion)
what
gibt die erklärende Zeichenkette zurück
(öffentliche Member-Funktion)

Spezielle Member-Funktionen von bad_expected_access < void > sind geschützt. Sie können nur von abgeleiteten Klassen aufgerufen werden.

Geerbt von std:: exception

Elementfunktionen

[virtual]
zerstört das Exception-Objekt
(virtuelle öffentliche Elementfunktion von std::exception )
[virtual]
gibt einen erläuternden String zurück
(virtuelle öffentliche Elementfunktion von std::exception )

Hinweise

Feature-Test Makro Wert Std Feature
__cpp_lib_constexpr_exceptions 202502L (C++26) constexpr std::bad_expected_access

Beispiel

Siehe auch

Exception, die einen geprüften Zugriff auf ein optional-Objekt ohne Wert anzeigt
(Klasse)
Exception, die bei ungültigen Zugriffen auf den Wert eines variant geworfen wird
(Klasse)