std::shared_ptr<T>::operator*, std::shared_ptr<T>::operator->
De cppreference.com
< cpp | memory | shared ptr
T& operator*() const noexcept; |
(1) | (desde C++11) |
T* operator->() const noexcept; |
(2) | (desde C++11) |
Desreferencia del puntero almacenado. El comportamiento no está definido si el puntero almacenado es nulo.
Contenido |
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
1) El resultado de desreferenciar el puntero almacenado, es decir, *get().
2) El puntero almacenado, es decir, get().
[editar] Notas
Cuando T
(posiblemente calificado-cv) es void
, no se especifica si se declara la función (1).
Cuando |
(desde C++17) |
Si cualquiera de las funciones se declara a pesar de no estar especificada, no se especifica cuál es su tipo de retorno, excepto que se garantiza que la declaración (aunque no necesariamente la definición) de la función es legal. Esto hace posible instanciar std::shared_ptr<void>.
[editar] Ejemplo
Ejecuta este código
#include <iostream> #include <memory> struct Foo { Foo(int in) : a(in) {} void print() const { std::cout << "a = " << a << '\n'; } int a; }; int main() { auto ptr = std::make_shared<Foo>(10); ptr->print(); (*ptr).print(); }
Salida:
a = 10 a = 10
[editar] Véase también
Devuelve el puntero almacenado. (función miembro pública) |