std::expected<T,E>::value
Von de.cppreference.net
| 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
|
Dieser Abschnitt ist unvollständig
Grund: Kein 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) |
|
|
(C++23)
|
Exception, die einen geprüften Zugriff auf ein
expected
anzeigt, das einen unerwarteten Wert enthält
(Klassentemplate) |