Espacios de nombres
Variantes

std::optional<T>::value

De cppreference.com
 
 
Biblioteca de servicios
 
 
<tbody> </tbody>
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.

De lo 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 comprueba si este optional contiene un valor, que puede ser más eficiente que value().

Ejemplo

#include <optional>
#include <iostream>
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, de otra manera, otro valor.
(función miembro pública) [editar]
Accede al valor contenido.
(función miembro pública) [editar]
Excepción que indica que la prueba de acceso de un opcional no contiene un valor.
(clase) [editar]