std::optional<T>::value
De cppreference.com
constexpr T& value()&; constexprconst T & value()const&; | (1) | (desde C++17) |
constexpr T&& value()&&; constexprconst 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
Ejecuta este código
#include <optional>#include <iostream>int main(){std::optional<int> opt ={}; try{[[maybe_unused]]int n = opt.value();}catch(conststd::bad_optional_access& e){std::cout<< e.what()<<'\n';}try{ opt.value()=42;}catch(conststd::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) | |
Accede al valor contenido. (función miembro pública) | |
(C++17) | Excepción que indica que la prueba de acceso de un opcional no contiene un valor. (clase) |