Bietet die C ++ 11-Standardbibliothek ein Dienstprogramm zum Konvertieren von a std::shared_ptr
nach std::unique_ptr
oder umgekehrt? Ist das ein sicherer Betrieb?
c++
c++11
shared-ptr
unique-ptr
Hinterforsum
quelle
quelle
shared_ptr
.Antworten:
Kurz gesagt, können Sie einfach und konvertieren ein effizienter
std::unique_ptr
zu ,std::shared_ptr
aber sie nicht konvertieren kannstd::shared_ptr
zustd::unique_ptr
.Beispielsweise:
oder:
quelle
std::unique_ptr
zu einstd::shared_ptr
.Erstellen Sie mit unique_ptr u_ptr shared_ptr s_ptr:
In die andere Richtung zu gehen ist unpraktisch.
quelle
std::shared_ptr<whatever> s_ptr(std::move(u_ptr));
std::shared_ptr<whatever> s_ptr{std::move(u_ptr)};
Deleter
imunique_ptr