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.

6
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 zuweist, dann aufruft g()und vor der std::unique_ptrKonstruktion eine Ausnahme ausgelöst wird , geht der …
96 c++  c++17  unique-ptr 

4
Wie deklariere ich std :: unique_ptr und wozu dient es?
Ich versuche zu verstehen, wie es std::unique_ptrfunktioniert und dafür habe ich dieses Dokument gefunden. Der Autor geht von folgendem Beispiel aus: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; …
91 c++  pointers  std  unique-ptr 

6
error :: make_unique ist kein Mitglied von 'std'
Ich versuche, das folgende Thread-Pool-Programm zu kompilieren, das bei der Codeüberprüfung veröffentlicht wurde, um es zu testen. /codereview/55100/platform-independant-thread-pool-v4 Aber ich bekomme die Fehler threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: …

4
Warum kann ein T * im Register übergeben werden, ein unique_ptr <T> jedoch nicht?
Ich schaue mir Chandler Carruths Vortrag auf der CppCon 2019 an: Es gibt keine kostengünstigen Abstraktionen Darin gibt er das Beispiel, wie er überrascht war, wie viel Aufwand Ihnen durch die Verwendung eines std::unique_ptr&lt;int&gt;Over-An entsteht int*. Dieses Segment beginnt ungefähr zum Zeitpunkt 17:25. Sie können sich die Kompilierungsergebnisse seines Beispiel-Snippet-Paares …

4
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 ordinary function that does something... return …
83 c++  c++11  unique-ptr 

4
Ist auto_ptr veraltet?
Wird auto_ptr im eingehenden C ++ - Standard veraltet sein? Sollte unique_ptr anstelle von shared_ptr für die Eigentumsübertragung verwendet werden? Wenn unique_ptr nicht im Standard enthalten ist, muss ich stattdessen shared_ptr verwenden?







4
Eindeutiger Zeiger - Warum wird der Destruktor dreimal aufgerufen?
Ich habe eine Methode, die ein Objekt nach Wert zurückgibt. Die Methode stammt aus einer Bibliothek, über die ich keine Kontrolle habe. Für die weitere Bearbeitung des Objekts möchte ich weiterhin mit einem unique_ptr an diesem Objekt arbeiten. Hier ist ein Beispiel: #include &lt;iostream&gt; #include &lt;memory&gt; class Bla { public: …
8 c++  unique-ptr 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.