std::optional<T>::operator->, std::optional<T>::operator* - cppreference.com
De cppreference.com
|
|
(1) | (desde C++17) |
|
|
(1) | (desde C++17) |
|
|
(2) | (desde C++17) |
|
|
(2) | (desde C++17) |
|
|
(2) | (desde C++17) |
|
|
(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.
Parámetros
(Ninguno)
Valor de retorno
Puntero o referencia al valor contenido.
Excepciones
No lanza nada.
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().
Ejemplo
#include <optional> #include <iostream> #include <string> int main() { using namespace 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
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] |