Espacios de nombres
Variantes
Acciones

std::optional<T>::value

De cppreference.com
< cpp‎ | utility‎ | optional
 
 
Biblioteca de servicios
 
 
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.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

Una referencia al valor contenido.

[editar] Excepciones

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

[editar] Notas

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

[editar] 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

[editar] 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]