Espacios de nombres
Variantes

std::enable_shared_from_this::enable_shared_from_this

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>
constexpr enable_shared_from_this() noexcept;
(1) (desde C++11)
enable_shared_from_this( const enable_shared_from_this<T>&obj ) noexcept;
(2) (desde C++11)

Construye un nuevo objeto enable_shared_from_this. El miembro privado std::weak_ptr<T> se inicializa por valor.

Parámetros

obj - Un objeto enable_shared_from_this a copiar.

Notas

No hay un constructor de movimiento: el movimiento desde un objeto derivado de enable_shared_from_this no transfiere su identidad compartida.

Ejemplo

#include <memory>

struct Foo : public std::enable_shared_from_this<Foo> {
    Foo() {}  // llama implícitamente al constructor de enable_shared_from_this
    std::shared_ptr<Foo> getFoo() { return shared_from_this(); }
};

int main() {
    std::shared_ptr<Foo> pf1(new Foo);
    auto pf2 = pf1->getFoo();  // comparte la posesión del objeto con pf1
}


Véase también

Puntero inteligente con semántica de posesión de objeto compartida.
(plantilla de clase) [editar]