Namespaces
Variants

std::expected<T,E>::value

Von de.cppreference.net
 
 
Hilfsmittelbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Hilfsmittel
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationsoperatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Primäre Schablone
constexpr T& value() &;
(1) (seit C++23)
constexpr const T& value() const&;
(2) (seit C++23)
constexpr T&& value() &&;
(3) (seit C++23)
constexpr const T&& value() const&&;
(4) (seit C++23)
void partielle Spezialisierung
constexpr void value() const&;
(5) (seit C++23)
constexpr void value() &&;
(6) (seit C++23)

Falls *this einen erwarteten Wert enthält, wird eine Referenz auf den enthaltenen Wert zurückgegeben. Gibt nichts für die partielle Spezialisierung void zurück.

Andernfalls wird eine Ausnahme vom Typ std::bad_expected_access<std::decay_t<E>> geworfen, die eine Kopie von error() enthält.

1,2) Falls std::is_copy_constructible_v<E> false ist, ist das Programm fehlerhaft (ill-formed).
3,4) Falls std::is_copy_constructible_v<E> oder std::is_constructible_v<E, decltype(std::move(error()))> false ist, ist das Programm fehlerhaft.
5) Falls std::is_copy_constructible_v<E> false ist, ist das Programm fehlerhaft.
6) Falls std::is_move_constructible_v<E> false ist, ist das Programm fehlerhaft.

Rückgabewert

1,2) val
3,4) std :: move ( val )

Ausnahmen

1,2,5) Wirft std:: bad_expected_access ( std:: as_const ( error ( ) ) ) falls * this einen unerwarteten Wert enthält.
3,4,6) Wirft std:: bad_expected_access ( std :: move ( error ( ) ) ) falls * this einen unerwarteten Wert enthält.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 3940 C++23 E war nicht erforderlich, copy/move-konstruierbar zu sein für Überladungen (5,6) erforderlich

Siehe auch

gibt den erwarteten Wert zurück, falls vorhanden, andernfalls einen anderen Wert
(öffentliche Elementfunktion)
greift auf den erwarteten Wert zu
(öffentliche Elementfunktion)
gibt den unerwarteten Wert zurück
(öffentliche Elementfunktion)
Exception, die einen geprüften Zugriff auf ein expected anzeigt, das einen unerwarteten Wert enthält
(Klassentemplate)