Apakah pustaka standar C ++ 11 menyediakan utilitas apa pun untuk mengonversi dari a std::shared_ptr
ke std::unique_ptr
, atau sebaliknya? Apakah operasi ini aman?
c++
c++11
shared-ptr
unique-ptr
Hind Forsum
sumber
sumber
shared_ptr
.Jawaban:
Singkatnya, Anda dapat dengan mudah dan efisien mengkonversi
std::unique_ptr
kestd::shared_ptr
tetapi Anda tidak dapat mengkonversistd::shared_ptr
kestd::unique_ptr
.Sebagai contoh:
atau:
sumber
std::unique_ptr
ke astd::shared_ptr
.Diberikan unique_ptr u_ptr, buat shared_ptr s_ptr:
Pergi ke arah lain tidak praktis.
sumber
std::shared_ptr<whatever> s_ptr(std::move(u_ptr));
std::shared_ptr<whatever> s_ptr{std::move(u_ptr)};
Deleter
simpanan di dalamunique_ptr