Namespaces
Variants

std::optional<T>::value

Aus de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationsoperatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
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 std::bad_optional_access-Ausnahme ausgelöst.

Parameter

(keine)

Rückgabewert

Eine Referenz auf den enthaltenen Wert.

Exceptions

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

Hinweise

Der Dereferenzierungsoperator operator*() überprüft nicht, ob dieses Optional einen Wert enthält, was effizienter sein kann als value() .

Beispiel

#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

Siehe auch

gibt den enthaltenen Wert zurück, falls verfügbar, andernfalls einen anderen Wert
(öffentliche Elementfunktion)
greift auf den enthaltenen Wert zu
(öffentliche Elementfunktion)
Exception, die einen geprüften Zugriff auf ein optional angibt, das keinen Wert enthält
(Klasse)