std::optional<T>::value
Von cppreference.com
| constexpr T& value() &; constexpr const T& value() const &; |
(1) | (seit C++17) |
| constexpr T&& value() &&; constexpr const T&& value() const &&; |
(2) | (seit C++17) |
Wenn *this einen Wert enthält, wird eine Referenz auf den enthaltenen Wert zurückgegeben.
Andernfalls wird eine Ausnahme vom Typ std::bad_optional_access ausgelöst.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
Eine Referenz auf den enthaltenen Wert.
[bearbeiten] Ausnahmen
std::bad_optional_access, wenn *this keinen Wert enthält.
[bearbeiten] Anmerkungen
Der Dereferenzierungsoperator operator*() prüft nicht, ob dieser Optional einen Wert enthält, was effizienter sein kann als value().
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <optional> int main() { std::optional<int> opt = {}; try { [[maybe_unused]] int n = opt.value(); } catch(const std::bad_optional_access& e) { std::cout << e.what() << '\n'; } try { opt.value() = 42; } catch(const std::bad_optional_access& e) { std::cout << e.what() << '\n'; } opt = 43; std::cout << *opt << '\n'; opt.value() = 44; std::cout << opt.value() << '\n'; }
Ausgabe
bad optional access bad optional access 43 44
[bearbeiten] Siehe auch
| gibt den enthaltenen Wert zurück, falls vorhanden, sonst einen anderen Wert (public member function) | |
| greift auf den enthaltenen Wert zu (öffentliche Memberfunktion) | |
| (C++17) |
Ausnahme, die auf einen geprüften Zugriff auf ein optionales Element hinweist, das keinen Wert enthält (class) |