Espacios de nombres
Variantes
Acciones

std::optional<T>::operator->, std::optional<T>::operator*

De cppreference.com
< cpp‎ | utility‎ | optional
 
 
Biblioteca de servicios
 
 
constexprconst T* operator->()const;
(1) (desde C++17)
constexpr T* operator->();
(1) (desde C++17)
constexprconst T& operator*()const&;
(2) (desde C++17)
constexpr T& operator*()&;
(2) (desde C++17)
constexprconst T&& operator*()const&&;
(2) (desde C++17)
constexpr T&& operator*()&&;
(2) (desde C++17)

Accede al valor contenido.

1) Devuelve un puntero al valor contenido.
2) Devuelve una referencia al valor contenido.

El comportamiento está indefinido si *this no contiene un valor.

Contenido

[editar]Parámetros

(Ninguno)

[editar]Valor de retorno

Puntero o referencia al valor contenido.

[editar]Excepciones

No lanza nada.

[editar]Notas

¡Este operador no comprueba si el objeto opcional contiene un valor! Puedes hacerlo manualmente usando has_value() o simplemente el operador operator bool(). Alternativamente, si se necesita un acceso comprobado, puede usarse value() o value_or().

[editar]Ejemplo

#include <optional>#include <iostream>#include <string>   int main(){usingnamespace std::string_literals;   std::optional<int> opt1 =1;std::cout<<"opt1: "<<*opt1 <<'\n';   *opt1 =2;std::cout<<"opt1: "<<*opt1 <<'\n';   std::optional<std::string> opt2 ="abc"s;std::cout<<"opt2: "<<*opt2 <<" tamaño: "<< opt2->size()<<'\n';   // Puedes "tomar" el valor contenido llamando a operator*// sobre un valor rvalue a optional   auto tomado =*std::move(opt2);std::cout<<"tomado: "<< tomado <<" opt2: "<<*opt2 <<"tamaño: "<< opt2->size()<<'\n';}

Salida:

opt1: 1 opt1: 2 opt2: abc tamaño: 3 tomado: abc opt2: tamaño: 0

[editar]Véase también

Devuelve el valor contenido.
(función miembro pública)[editar]
Devuelve el valor contenido si está disponible, de otra manera, otro valor.
(función miembro pública)[editar]
close