¿La biblioteca estándar de C ++ 11 proporciona alguna utilidad para convertir de a std::shared_ptra 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_ptra de manera fácil y eficiente,std::shared_ptrpero no puede convertirstd::shared_ptrastd::unique_ptr.Por ejemplo:
o:
fuente
std::unique_ptra 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)};Deleteralmacenado dentro delunique_ptr