A biblioteca padrão do C ++ 11 fornece algum utilitário para converter de a std::shared_ptr
para std::unique_ptr
ou vice-versa? Esta operação é segura?
c++
c++11
shared-ptr
unique-ptr
Hind Forsum
fonte
fonte
shared_ptr
.Respostas:
Resumindo, você pode converter um
std::unique_ptr
para de maneira fácil e eficiente,std::shared_ptr
mas nãostd::shared_ptr
parastd::unique_ptr
.Por exemplo:
ou:
fonte
std::unique_ptr
a astd::shared_ptr
.Dado unique_ptr u_ptr, crie shared_ptr s_ptr:
Seguir o outro caminho não é prático.
fonte
std::shared_ptr<whatever> s_ptr(std::move(u_ptr));
std::shared_ptr<whatever> s_ptr{std::move(u_ptr)};
Deleter
armazenado dentro dounique_ptr