Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | utility‎ | expected
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-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
Relationale Operatoren (in C++20 veraltet)
 
 
Primäre Vorlage
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, wird eine Referenz auf den enthaltenen Wert zurückgegeben. Bei der void-Teilspezialisierung wird nichts zurückgegeben.

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 schlecht geformt.
3,4) Wenn std::is_copy_constructible_v<E> oder std::is_constructible_v<E, decltype(std::move(error()))> false ist, ist das Programm schlecht geformt.
5) Wenn std::is_copy_constructible_v<E> false ist, ist das Programm schlecht geformt.
6) Wenn std::is_move_constructible_v<E> false ist, ist das Programm schlecht geformt.

Inhalt

[bearbeiten] Rückgabewert

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

[bearbeiten] Ausnahmen

1,2,5) Löst std::bad_expected_access(std::as_const(error())) aus, wenn *this einen unerwarteten Wert enthält.
3,4,6) Löst std::bad_expected_access(std::move(error())) aus, wenn *this einen unerwarteten Wert enthält.

[bearbeiten] Beispiel

[bearbeiten] Fehlerberichte

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

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3940 C++23 E musste für die Überladungen (5,6) nicht kopier-/move-konstruierbar sein Gefordert

[bearbeiten] Siehe auch

gibt den erwarteten Wert zurück, falls vorhanden, andernfalls einen anderen Wert
(öffentliche Mitgliedsfunktion) [bearbeiten]
greift auf den erwarteten Wert zu
(öffentliche Mitgliedsfunktion) [bearbeiten]
gibt den unerwarteten Wert zurück
(öffentliche Mitgliedsfunktion) [bearbeiten]
Ausnahme, die den geprüften Zugriff auf ein expected anzeigt, das einen unerwarteten Wert enthält
(Klassenschablone) [bearbeiten]