Namespaces
Variants

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

From cppreference.net
Utilities library
Primäres Template
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)

Wenn * this einen erwarteten Wert enthält, gibt eine Referenz auf den enthaltenen Wert zurück. Gibt nichts für void Partialspezialisierung zurück.

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

1,2) Wenn std:: is_copy_constructible_v < E > false ist, ist das Programm fehlerhaft.
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) Wenn std:: is_copy_constructible_v < E > false ist, ist das Programm fehlerhaft.
6) Wenn std:: is_move_constructible_v < E > false ist, ist das Programm fehlerhaft.

Inhaltsverzeichnis

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)