Als «unique-ptr» getaggte Fragen

std :: unique_ptr ist ein intelligenter Zeiger, der über einen Zeiger das alleinige Eigentum an einem Objekt behält. unique_ptr kann nicht kopiert oder kopiert werden. Zwei Instanzen von unique_ptr können nicht dasselbe Objekt verwalten.

367
Rückgabe von unique_ptr von Funktionen

unique_ptr<T>erlaubt keine Kopierkonstruktion, sondern unterstützt die Verschiebungssemantik. Dennoch kann ich a zurückgebenunique_ptr<T> von einer Funktion zurückgeben und den zurückgegebenen Wert einer Variablen zuweisen. #include <iostream> #include <memory> using...

185
std :: auto_ptr bis std :: unique_ptr

Mit dem neuen Standard (und Teilen, die bereits in einigen Compilern verfügbar sind) soll der neue Typ std::unique_ptrein Ersatz für sein std::auto_ptr. Überlappt sich ihre Verwendung genau (damit ich meinen Code global suchen / ersetzen kann (nicht, dass ich dies tun würde, aber wenn ich es tun...

96
Warum std :: make_unique in C ++ 17 verwenden?

Soweit ich weiß, wurde C ++ 14 eingeführt std::make_unique, da dies aufgrund der nicht angegebenen Reihenfolge der Parameterauswertung unsicher war: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Erläuterung: Wenn die Auswertung zuerst den Speicher für den Rohzeiger...

83
Wie kann man std :: unique_ptr weitergeben?

Ich habe meinen ersten Versuch, C ++ 11 zu verwenden unique_ptr. Ich ersetze einen polymorphen Rohzeiger in einem meiner Projekte, das einer Klasse gehört, aber ziemlich häufig herumgereicht wird. Früher hatte ich Funktionen wie: bool func(BaseClass* ptr, int other_arg) { bool val; // plain...