std::enable_shared_from_this<T>:: enable_shared_from_this
From cppreference.net
<
cpp
|
memory
|
enable shared from this
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::enable_shared_from_this
| Protected member functions | ||||
|
enable_shared_from_this::enable_shared_from_this
|
||||
| Public member functions | ||||
|
constexpr
enable_shared_from_this
(
)
noexcept
;
|
(1) | (desde C++11) |
|
enable_shared_from_this
(
const
enable_shared_from_this
&
other
)
noexcept
;
|
(2) | (desde C++11) |
Construye un nuevo objeto
enable_shared_from_this
.
weak_this
es
value-initialized
.
Contenidos |
Parámetros
| otro | - |
un
enable_shared_from_this
para copiar
|
Notas
No hay un constructor de movimiento: mover desde un objeto derivado de
enable_shared_from_this
no transfiere su identidad compartida.
Ejemplo
Ejecutar este código
#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 propiedad del objeto con pf1 }
Véase también
|
(C++11)
|
puntero inteligente con semántica de propiedad compartida de objetos
(plantilla de clase) |