Namensräume
Varianten
Aktionen

std::experimental::optional<T>::value

Von cppreference.com
 
 
 
 
 
constexpr T& value() &;
constexpr const T & value() const &;
(1) (library fundamentals TS)
constexpr T&& value() &&;
constexpr const T&& value() const &&;
(2) (library fundamentals TS)

Gibt den enthaltenen Wert zurück.

1) Äquivalent zu return bool(*this) ? *val : throw bad_optional_access();.
2) Äquivalent zu return bool(*this) ? std::move(*val) : throw bad_optional_access();.

Inhalt

[bearbeiten] Parameter

(keine)

[bearbeiten] Rückgabewert

Eine Referenz auf den enthaltenen Wert.

[bearbeiten] Ausnahmen

std::experimental::bad_optional_access, falls *this keinen Wert enthält.

[bearbeiten] Hinweise

Der Dereferenzierungsoperator operator*() prüft nicht, ob dieser optional einen Wert enthält, was effizienter sein kann als value().

[bearbeiten] Beispiel

#include <experimental/optional>
#include <iostream>
 
int main()
{
    std::experimental::optional<int> opt = {};
 
    try
    {
        int n = opt.value();
    }
    catch (const std::logic_error& e)
    {
        std::cout << e.what() << '\n';
    }
}

Mögliche Ausgabe

optional<T>::value: not engaged

[bearbeiten] Siehe auch

gibt den enthaltenen Wert zurück, falls vorhanden, sonst einen anderen Wert
(public member function) [bearbeiten]
greift auf den enthaltenen Wert zu
(public member function) [bearbeiten]
(library fundamentals TS)
Ausnahme, die auf einen geprüften Zugriff auf ein optionales Element hinweist, das keinen Wert enthält
(class) [bearbeiten]