¿La biblioteca estándar de C ++ 11 proporciona alguna utilidad para convertir de a std::shared_ptr
a std::unique_ptr
, o viceversa? ¿Es esta operación segura?
c++
c++11
shared-ptr
unique-ptr
Hind Forsum
fuente
fuente
shared_ptr
.Respuestas:
En resumen, puede convertir un
std::unique_ptr
a de manera fácil y eficiente,std::shared_ptr
pero no puede convertirstd::shared_ptr
astd::unique_ptr
.Por ejemplo:
o:
fuente
std::unique_ptr
a astd::shared_ptr
.Dado unique_ptr u_ptr, cree shared_ptr s_ptr:
Ir por el otro lado no es práctico.
fuente
std::shared_ptr<whatever> s_ptr(std::move(u_ptr));
std::shared_ptr<whatever> s_ptr{std::move(u_ptr)};
Deleter
almacenado dentro delunique_ptr