Namespaces
Variants

std::optional<T>::value

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de biblioteca (C++20)
Utilidades del programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
constexpr T& value() &;
constexpr const T& value() const &;
(1) (desde C++17)
constexpr T&& value() &&;
constexpr const T&& value() const &&;
(2) (desde C++17)

Si *this contiene un valor, devuelve una referencia al valor contenido.

En caso contrario, lanza una excepción std::bad_optional_access.

Parámetros

(ninguno)

Valor de retorno

Una referencia al valor contenido.

Excepciones

std::bad_optional_access si * this no contiene un valor.

Notas

El operador de desreferencia operator*() no verifica si este opcional contiene un valor, lo cual puede ser más eficiente que value() .

Ejemplo

#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';
}

Salida:

bad optional access
bad optional access
43
44

Véase también

devuelve el valor contenido si está disponible, otro valor en caso contrario
(función miembro pública)
accede al valor contenido
(función miembro pública)
excepción que indica acceso verificado a un optional que no contiene un valor
(clase)