Namespaces
Variants

std::experimental::optional<T>:: value

From cppreference.net
constexpr T & value ( ) & ;
constexpr const T & value ( ) const & ;
(1) (TS de fundamentos de biblioteca)
constexpr T && value ( ) && ;
constexpr const T && value ( ) const && ;
(2) (TS de fundamentos de biblioteca)

Devuelve el valor contenido.

1) Equivalente a return bool ( * this ) ? * val : throw bad_optional_access ( ) ; .
2) Equivalente a return bool ( * this ) ? std :: move ( * val ) : throw bad_optional_access ( ) ; .

Contenidos

Parámetros

(ninguno)

Valor de retorno

Una referencia al valor contenido.

Excepciones

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

Notas

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

Ejemplo

#include <experimental/optional>
#include <iostream>
int main()
{
    std::experimental::optional<int> opt = {};
    try
    {
        int n = opt.value();
    }
    catch (const std::logic_error& e)
    {
        std::cout << e.what() << '\n';
    }
}

Salida posible:

optional<T>::value: not engaged

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)
(library fundamentals TS)
excepción que indica acceso verificado a un optional que no contiene un valor
(clase)