Espacios de nombres
Variantes

std::unique_ptr::operator*, std::unique_ptr::operator->

De cppreference.com
 
 
Biblioteca de servicios
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
<tbody> </tbody>
typename std::add_lvalue_reference<T>::type operator*() const noexcept(noexcept(*std::declval<pointer>()));
(1) (desde C++11)
(constexpr since C++23)
pointer operator->() const noexcept;
(2) (desde C++11)
(constexpr since C++23)

operator* y operator-> proporcionan acceso al objeto poseído por *this.

El comportamiento no está definido si get() == nullptr.

Estas funciones miembro solo se proporcionan para unique_ptr para los objetos individuales, es decir, la plantilla principal.

Parámetros

(Ninguno)

Valor de retorno

1) Devuelve el objeto poseído por *this, equivalente a *get().
2) Devuelve un puntero al objeto poseído por *this, es decir, get().

Excepciones

1) Puede lanzar si pointer tiene un operator* que lanza.

Ejemplo

#include <iostream>
#include <memory>

struct Foo {
    void bar() { std::cout << "Foo::bar\n"; }
};

void f(const Foo&) 
{
    std::cout << "f(const Foo&)\n";
}

int main() 
{
    std::unique_ptr<Foo> ptr(new Foo);

    ptr->bar();
    f(*ptr);
}

Salida:

Foo::bar
f(const Foo&)

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2762 C++11 operator* podría potencialmente lanzar incluso si
*get() fuese noexcept.
Se añadió una especificación de excepción condicional.

Véase también

Devuelve un puntero al objeto gestionado.
(función miembro pública) [editar]