Namensräume
Varianten
Aktionen

std::optional<T>::value

Von cppreference.com
< cpp‎ | utility‎ | optional
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
 
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

#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) [edit]
greift auf den enthaltenen Wert zu
(öffentliche Memberfunktion) [bearbeiten]
Ausnahme, die auf einen geprüften Zugriff auf ein optionales Element hinweist, das keinen Wert enthält
(class) [edit]