std::expected<T,E>::value_or
Von cppreference.com
| Primäre Vorlage |
||
| template< class U = std::remove_cv_t<T> > constexpr T value_or( U&& default_value ) const&; |
(1) | (seit C++23) |
| template< class U = std::remove_cv_t<T> > constexpr T value_or( U&& default_value ) &&; |
(2) | (seit C++23) |
Gibt den erwarteten Wert zurück, wenn er existiert, andernfalls wird default_value zurückgegeben.
Die partielle Spezialisierung void hat diese Member-Funktionen nicht.
1) Wenn std::is_copy_constructible_v<T> oder std::is_convertible_v<U, T> false ist, ist das Programm fehlerhaft.
2) Wenn std::is_move_constructible_v<T> oder std::is_convertible_v<U, T> false ist, ist das Programm fehlerhaft.
Inhalt |
[bearbeiten] Parameter
| default_value | - | Der Wert, der verwendet werden soll, falls *this keinen erwarteten Wert enthält |
[bearbeiten] Rückgabewert
1) has_value() ? **this : static_cast<T>(std::forward<U>(default_value))
2) has_value() ? std::move(**this) : static_cast<T>(std::forward<U>(default_value))
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein 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 3886 | C++23 | U hat kein Standard-Template-Argument |
spezifiziert |
[bearbeiten] Siehe auch
| gibt den erwarteten Wert zurück (öffentliche Mitgliedsfunktion) |