Tag: unique-ptr

std::unique_ptr ist ein smart pointer, behält die alleinige Verantwortung für ein Objekt durch einen Zeiger. unique_ptr ist nicht kopierbar oder kopieren, abzutreten, zu zwei Instanzen von unique_ptr nicht verwalten können das gleiche Objekt.

seltsamer Fehler: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr, wenn kein Zeiger wirklich geschaffen

Anzahl der Antworten 3 Antworten
Habe ich eine Klasse, die so aussieht: template<typename T> using VectorPtr=std::vector<std::unique_ptr<T>>; template<typename T> using VectorRawPtr=std::vector<T*>; class ItemsSet{ //<-- Compiler say this line contans an error 0_o ? public: ItemsSet(VectorPtr<Item>& items); ~ItemsSet() = default; VectorRawPtr<Item> GetItems(); VectorRawPtr<Item> GetSuitableItemsForPeriod(const

Bewegen unique_ptrs von einem Vektor zu einem anderen

Anzahl der Antworten 1 Antworten
Ich würde gerne verschieben Sie den unique_ptr ' s werden in einer unsortierten Vektor in ein Vektor, enthält die sortierten Vektor von Zeigern. Sicherlich verschieben eines unique_ptr nicht automatisch löschen das element in der ersten Vektor? Wie

Beispiel für ein memory leak in c++ (durch die Verwendung von Ausnahmen)

Anzahl der Antworten 5 Antworten
In C++ How to Programm es einen Absatz gibt, die sagen: Üblich, Programmierung besteht in der Allokation von dynamischem Speicher zuweisen der Adresse dass der Speicher für einen Zeiger, verwenden Sie den Mauszeiger zu manipulieren, um die

Warum habe ich erhalten: "der Versuch zum Verweis auf eine gelöschte Funktion" Fehler nach dem hinzufügen eines Vektors mit einzigartigen Zeiger auf meiner header-Datei?

Anzahl der Antworten 2 Antworten
Lernen C++ ich bin ein Spiel Programmieren. In diesem Spiel können zwei Spieler. Diejenigen Spieler, die in der Lage sind, miteinander zu verbinden mit sockets. Nach dem hinzufügen eines Vektors mit eindeutiger Zeiger auf das player-header, bekam

Warum ist shared_ptr<void> legal, während unique_ptr<void> ist schlecht ausgebildet?

Anzahl der Antworten 2 Antworten
Die Frage passt wirklich in den Titel: ich bin neugierig zu wissen, was ist der technische Grund für diesen Unterschied, sondern auch die Begründung ? std::shared_ptr<void> sharedToVoid; //legal; std::unique_ptr<void> uniqueToVoid; //ill-formed; InformationsquelleAutor Ad N | 2016-09-02

unique_ptr char* Umwandlung

Anzahl der Antworten 3 Antworten
Ich verwendet, um den Speicher in mein C++ Projekt mit neuen char* buffer = new char [size]; ... delete buffer; und ich möchte wirklich, um vorwärts zu bewegen, und verwenden Sie unique_ptr, wie diese unique_ptr<char>buffer(new char[size]); aber

entfernen unique_ptr aus der Warteschlange

Anzahl der Antworten 1 Antworten
Ich versuche, herauszufinden, wie/ob ich die verwenden kann unique_ptr im queue. //create queue std::queue<std::unique_ptr<int>> q; //add element std::unique_ptr<int> p (new int{123}); q.push(std::move(p)); //try to grab the element auto p2 = foo_queue.front(); q.pop(); Verstehe ich, warum der code

Die richtige Art und Weise der übertragung von Eigentum an einen std::vector< std::unique_ptr< int> > zu einer Klasse gebaut

Anzahl der Antworten 1 Antworten
Was ist die richtige Art und Weise der übertragung von Eigentum an einem std::vector<unique_ptr<int> > zu einer Klasse erstellt? Unten ist ein code-Darstellung, was ich tun möchte. Ich weiß, es ist nicht korrekt (nicht kompiliert) und gegen

unique_ptr in eine abgeleitete Klasse, die als argument an eine Funktion, einen unique_ptr zu einer Basis-Klasse

Anzahl der Antworten 3 Antworten
Ich versuche, einen unique_ptr zu abgeleiteten Klasse in eine Funktion, der eine unique_ptr auf eine Basisklasse. So etwas wie: class Base {}; class Derived : public Base {}; void f(unique_ptr<Base> const &base) {} … unique_ptr<Derived> derived =

Verwenden unique_ptr für Eigentums-und raw-pointer, andernfalls?

Anzahl der Antworten 2 Antworten
Ich bin C++11-ing code. Ich habe class X { /* */ }; class A { std::vector<X*> va_x; }; class B { std::vector<X*> vb_x; std::vector<A> vb_a; }; X*s "va_x" in meiner Klasse Einen Punkt, um Objekte, wies auch

Doppel - (zwei-dimensionale) Arrays mit std::unique_ptr

Anzahl der Antworten 7 Antworten
Habe ich ein double array zugewiesen Zeiger auf Zeiger. //pointer to pointer int **x = new int *[5]; //allocation for (i=0; i<5; i++){ x[i] = new int[2]; } for (i=0; i<5; i++){ //assignment for (j=0; j<2; j++){

Wie deklarieren Sie einen Vektor, der unique_ptr ist so Klasse, die Daten-Mitglied?

Anzahl der Antworten 5 Antworten
Ich würde gerne ein Vektor von unique_ptr ist als Mitglied einer Klasse, die ich mache. class Foo { [...] private: vector<unique_ptr<Bar>> barList; } Aber dann fange ich kryptische Fehlermeldungen aus der VS2010 compiler: error C2248: 'std::unique_ptr<_Ty>::operator ='

Aufruf initializer_list Konstruktor über make_unique/make_shared

Anzahl der Antworten 2 Antworten
Ich versuche zu verwenden std::make_unique instantiieren einer Klasse, deren Konstruktor erhalten, der eine std::initializer_list. Hier ein minimal-Fall : #include <string> #include <vector> #include <initializer_list> #include <memory> struct Foo { Foo(std::initializer_list<std::string> strings) : strings(strings) {} std::vector<std::string> strings; };

Kein Typ mit dem Namen 'unique_ptr' in namespace 'std' beim kompilieren unter LLVM/Clang

Anzahl der Antworten 1 Antworten
Ich bin, fangen einen compile-Fehler, wenn Sie versuchen zu verwenden unique_ptr auf Apple-Plattformen mit -std=c++11: $ make c++ -std=c++11 -DNDEBUG -g2 -O3 -fPIC -march=native -Wall -Wextra -pipe -c 3way.cpp In file included ... ./smartptr.h:23:27: error: no type

C++ - array von char mit unique_ptr

Anzahl der Antworten 2 Antworten
Erste von allen, ich weiß, dies ist nicht der beste Weg, dies zu tun, ich bin gerade auf der Suche, wie es getan werden sollte. Ich erstellt eine Klasse namens bord,hält ein Mitglied std::unique_ptr<std::unique_ptr<char> > char_bord; Sollte

"Downcasting" unique_ptr<Base> unique_ptr<Abgeleitet>

Anzahl der Antworten 1 Antworten
Habe ich eine Reihe von Fabriken, die Rückkehr unique_ptr<Base>. Unter der Haube, obwohl, die Zeiger auf verschiedene abgeleitete Typen, ich.e unique_ptr<Derived>, unique_ptr<DerivedA>, unique_ptr<DerivedB>etc. Gegeben DerivedA : Derived und Derived : Base hätten wir: unique_ptr<Base> DerivedAFactory() { return

std::unique_ptr mit einem unvollständigen Typ nicht kompilieren

Anzahl der Antworten 6 Antworten
Ich bin mit dem pimpl-idiom mit std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; //defined elsewhere std::unique_ptr<window_impl> impl_; //won't compile }; Allerdings bekomme ich einen compile-Fehler in Bezug auf die Nutzung eines unvollständigen Typ, auf

Wie kann ich kompilieren von C++11 code, der mit Orwell Dev-C++?

Anzahl der Antworten 1 Antworten
Versuchen, kompilieren Sie den folgenden code: #include <iostream> #include <memory> struct Foo { Foo() { std::cout << "Foo::Foo\n"; } ~Foo() { std::cout << "Foo::~Foo\n"; } void bar() { std::cout << "Foo::bar\n"; } }; void f(const Foo &foo)

std::unique_ptr die Funktion gelöscht, initializer_list - driven-Zuordnung

Anzahl der Antworten 2 Antworten
Alle, Wenn ich die Instanzierung eines widgets array mit einer Initialisierer-Liste format eine Nackte Zeiger, der zeigt auf eine member-variable widget-Instanz kompiliert, aber nach dem Wechsel zu std::unique_ptr<> gcc gibt einen Kompilierungsfehler in Bezug auf eine gelöschte

initialisieren Sie ein Mitglied unique_ptr zu leeren

Anzahl der Antworten 2 Antworten
In meinem Programm habe ich eine Reihe von Objekten einer benutzerdefinierten Klasse Position. Die Erklärung der Position ist wie folgt: class Position { public: Position(int x, int y); ~Position(); Actor *getActor() { return actor.get(); }; void setActor(Actor

C++ std::unique_ptr Rückkehr aus Funktion und test auf null -

Anzahl der Antworten 4 Antworten
Ich habe eine Funktion, zurückgeben muss, die einen Zeiger auf ein Objekt der Klasse myClass. Für diesen Zweck Im mit std::unique_ptr. Wenn die Funktion erfolgreich ist, es wird wieder ein Zeiger auf ein Objekt mit Daten. Wenn

Was passiert mit unique_ptr nach std::move()?

Anzahl der Antworten 2 Antworten
Dieser code ist, was ich tun will: Tony& Movie::addTony() { Tony *newTony = new Tony; std::unique_ptr<Tony> tony(newTony); attachActor(std::move(tony)); return *newTony; } Frage ich mich, wenn ich dies tun könnte, statt: Tony& Movie::addTony() { std::unique_ptr<Tony> tony(new Tony); attachActor(std::move(tony));

Wie führen Sie ein dynamic_cast mit einem unique_ptr?

Anzahl der Antworten 3 Antworten
Ich habe eine Klassen-Hierarchie wie folgt: class BaseSession : public boost::enable_shared_from_this<BaseSession> class DerivedSessionA : public BaseSession class DerivedSessionB : public BaseSession Innerhalb der abgeleiteten Klasse Funktionen, die ich regelmäßig aufrufen von Funktionen wie diese: Func(boost::dynamic_pointer_cast<DerivedSessionA>(shared_from_this())); Da ich

Alternativen static_pointer_cast für unique_ptr

Anzahl der Antworten 3 Antworten
Ich verstehen, dass die Verwendung static_pointer_cast mit unique_ptr würde dazu führen, dass eine gemeinsame Verantwortung, die darin enthaltenen Daten. In anderen Worten, was ich tun möchte ist: unique_ptr<Base> foo = fooFactory(); //do something for a while unique_ptr<Derived>

c++ unique_ptr argument übergeben

Anzahl der Antworten 4 Antworten
Denke, ich habe den folgenden code: class B { /* */ }; class A { vector<B*> vb; public: void add(B* b) { vb.push_back(b); } }; int main() { A a; B* b(new B()); a.add(b); } Angenommen, dass

Wie gebe ich die smart-Pointer in Funktionen?

Anzahl der Antworten 3 Antworten
Bei der übergabe von Objekten an Funktionen, die selben Regeln gelten für smart-Pointer auf andere Objekte enthalten dynamische Speicher? Wenn ich den pass, zum Beispiel eine std::vector<std::string> in eine Funktion, die ich immer sollten Sie die folgenden

Wie kann ich pass std::unique_ptr in eine Funktion

Anzahl der Antworten 6 Antworten
Wie kann ich passiere ein std::unique_ptr in eine Funktion? Können sagen, ich habe die folgende Klasse: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; };

Bewegen Eigentum von std::shared_ptr std::unique_ptr

Anzahl der Antworten 1 Antworten
Habe ich eine Klasse A hat ein Feld vom Typ std::unique_ptr: class A { public: std::unique_ptr pointer; //class body }; Und irgendwo im code, bin ich mit paar std::shared_ptrs, die auf das gleiche Objekt zeigen. Nun, was

Vektor von unique_ptr in C++11

Anzahl der Antworten 4 Antworten
Ich habe vor kurzem umgestellt auf C++11 und ich bin versucht zu bekommen, verwendet, um gute Praktiken gibt. Was ich am Ende, die sich sehr oft so etwas wie: class Owner { private: vector<unique_ptr<HeavyResource>> _vectorOfHeavyResources; public: virtual

Wie die Zuweisung einer Adresse zu einem bestehenden Objekt zu einem smart-pointer?

Anzahl der Antworten 6 Antworten
#include <memory> class bar{}; void foo(bar &object){ std::unique_ptr<bar> pointer = &object; } Will ich weisen Sie eine Adresse des Objekts, auf den Zeiger. Der obige code natürlich nicht kompilieren, da die Rechte Seite des zuweisungsoperators muss eine

Copy-Konstruktor für eine Klasse mit unique_ptr

Anzahl der Antworten 5 Antworten
Wie implementiere ich ein copy-Konstruktor für eine Klasse, die eine unique_ptr member-variable? Ich bin nur in C++11. InformationsquelleAutor der Frage codefx | 2013-04-16

Gewusst wie: const-Zeiger auf const-Objekt mit unique_ptr

Anzahl der Antworten 2 Antworten
Möchte ich weitergeben eine unique_ptr um eine Hilfsfunktion, und ich möchte sicherstellen, dass die Helfer-Funktion ändert weder der Mauszeiger, noch die Spitzen Objekt. Ohne die unique_ptrdie Lösung zu haben void takePtr(AClass const * const aPtr) { //Do

Kann ein unique_ptr nehmen Sie einen nullptr Wert?

Anzahl der Antworten 1 Antworten
Ist dieses code-fragment gültig? : unique_ptr<A> p( new A()); p = nullptr; Ist, kann ich zuweisen nullptrzu einem unique_ptr ? oder wird es scheitern? Habe ich versucht, diese mit der g++ compiler und es hat funktioniert, aber

Wie die Aufnahme eines unique_ptr in einem lambda-Ausdruck?

Anzahl der Antworten 5 Antworten
Ich habe versucht, die folgenden: std::function<void ()> getAction(std::unique_ptr<MyClass> &&psomething){ //The caller given ownership of psomething return [psomething](){ psomething->do_some_thing(); //psomething is expected to be released after this point }; } Aber nicht kompilieren. Irgendwelche Ideen? UPDATE: WIE vorgeschlagen,

Wie deklariere ich std :: unique_ptr und was nützt es?

Anzahl der Antworten 3 Antworten
Ich versuche zu verstehen, wie std::unique_ptr arbeitet und für die, die ich gefunden diese Dokument. Der Autor beginnt ab dem folgenden Beispiel: #include <utility> //declarations of unique_ptr using std::unique_ptr; //default construction unique_ptr<int> up; //creates an empty object

unique_ptr Boost-Äquivalent?

Anzahl der Antworten 5 Antworten
Gibt es einige gleichwertige Klasse für C++1x die std::unique_ptr in den boost-Bibliotheken? Das Verhalten, die ich Suche, ist die Möglichkeit, mit einer Ausnahme-safe-factory-Funktion, wie so... std::unique_ptr<Base> create_base() { return std::unique_ptr<Base>(new Derived); } void some_other_function() { std::unique_ptr<Base> b

Dynamisches Casting für unique_ptr

Anzahl der Antworten 6 Antworten
Als es der Fall war in Boost, C++11 bietet einige Funktionen für das casting shared_ptr: std::static_pointer_cast std::dynamic_pointer_cast std::const_pointer_cast Frage ich mich allerdings, warum gibt es keine äquivalenten Funktionen für unique_ptr. Betrachten Sie das folgende einfache Beispiel: class

Übergabe von unique_ptr an Funktionen

Anzahl der Antworten 5 Antworten
Ich bin versucht zu "modernisieren" einige der bestehenden code. Ich habe eine Klasse, die derzeit hat eine member-variable "- Gerät* device_". Es wird mit new eine Instanz zu schaffen, die in Initialisierungscode und hat ein "löschen device_"

unique_ptr Kompilierfehler

Anzahl der Antworten 2 Antworten
Ich denke, das ist peinlich, wenn ich Ihnen sagte, dass ich kippe diese zu kompilieren. würden Sie mir bitte helfen: #include<memory> using namespace std; int main() { std::unique_ptr<int> p1(new int(5)); return 0; } $ gcc main.cpp main.cpp:

Kann unique_ptr sicher in stl Sammlungen verwendet werden?

Anzahl der Antworten 3 Antworten
Ich bin verwirrt mit unique_ptr und rvalue verschieben Philosophie. Sagen wir, wir haben zwei Kollektionen: std::vector<std::auto_ptr<int>> autoCollection; std::vector<std::unique_ptr<int>> uniqueCollection; Nun würde ich erwarten, dass die folgenden scheitern, denn es ist nicht abzusehen, was der Algorithmus tut, innerlich

Die richtige Methode zum Erstellen von unique_ptr, die ein zugeordnetes Array enthält

Anzahl der Antworten 5 Antworten
Was ist der richtige Weg, um erstellen Sie einen unique_ptr, enthält ein array zugewiesen wird, die auf der free store? Visual studio 2013 unterstützt dies standardmäßig, aber wenn ich die gcc version 4.8.1 auf Ubuntu bekomme ich

Iterieren durch den Vektor & lt; unique_ptr & lt; mytype & gt; & gt; Verwenden von C ++ 11 für () Schleifen

Anzahl der Antworten 1 Antworten
Ich habe folgenden batch-code: std::vector<std::unique_ptr<AVLTree_GeeksforGeeks>> AVLArray(100000); /* Let's add some objects in the vector */ AVLTree_GeeksforGeeks *avl = new AVLTree_GeeksforGeeks(); avl->Insert[2]; avl->Insert[5]; AVL->Insert[0]; unique_ptr<AVLTree_GeeksforGeeks> unique_p(avl); AVLArray[0] = move(unique_p); /* we do this for a number of other

Wie initialisiere ich std :: unique_ptr im Konstruktor?

Anzahl der Antworten 2 Antworten
A. hpp: class A { private: std::unique_ptr<std::ifstream> file; public: A(std::string filename); }; A.cpp: A::A(std::string filename) { this->file(new std::ifstream(filename.c_str())); } Den Fehler, den ich bekomme, ist geworfen: A.cpp:7:43: error: no match for call to ‘(std::unique_ptr<std::basic_ifstream<char> >) (std::ifstream*)’ Hat

unique_ptr zu einer Basisklasse

Anzahl der Antworten 2 Antworten
Ich versuche, einen unique_ptr zu abgeleiteten Klasse in eine Funktion, der eine unique_ptr auf eine Basisklasse. So etwas wie: class Base {}; class Derived : public Base {}; void f(unique_ptr<Base> const &base) {} … unique_ptr<Derived> derived =

Sollte ich shared_ptr oder unique_ptr verwenden

Anzahl der Antworten 4 Antworten
Ich habe einige Objekte mit dem pimpl-idiom, bin mir aber nicht sicher, ob std::shared_ptr oder std::unique_ptr. Ich verstehe, dass std::unique_ptr effizienter ist, aber das ist nicht so sehr ein Problem für mich, da diese Objekte relativ Schwergewicht

Rückgabe von unique_ptr aus Funktionen

Anzahl der Antworten 5 Antworten
unique_ptr<T> nicht zulässt, kopieren Sie den Bau, sondern es unterstützt move-Semantik. Doch, kann ich zurückgeben unique_ptr<T> aus einer Funktion und weisen Sie den zurückgegebenen Wert einer Variablen. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() {

std :: auto_ptr zu std :: unique_ptr

Anzahl der Antworten 4 Antworten
Mit dem neuen standard zu kommen (und Teile, die bereits in einigen Compilern), die neue Art std::unique_ptr soll ein Ersatz für std::auto_ptr. Ihre Verwendung genau überlappen (so kann ich eine Globale suchen/ersetzen auf mein code (nicht, dass

Iterieren über einen Container mit unique_ptrs

Anzahl der Antworten 2 Antworten
Wie macht man Zugang unique_ptr Elemente eines Containers (per iterator) ohne Berücksichtigung der Eigentumsverhältnisse Weg von den container? Wenn man einen iterator auf ein element im container ist das element, das Eigentum immer noch mit dem container?

Nun, wie funktioniert der benutzerdefinierte Deleter von std :: unique_ptr?

Anzahl der Antworten 4 Antworten
Laut N3290 std::unique_ptr akzeptiert ein deleter argument im Konstruktor. Aber ich kann nicht, dass die Arbeit mit Visual C++ 10.0 oder MinGW g++ 4.4.1 in Windows, noch mit g++ 4.6.1 in Ubuntu. Ich daher Angst, dass mein

std :: unique_ptr mit einem unvollständigen Typ wird nicht kompiliert

Anzahl der Antworten 5 Antworten
Ich bin mit dem pimpl-idiom mit std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; //defined elsewhere std::unique_ptr<window_impl> impl_; //won't compile }; Allerdings bekomme ich einen compile-Fehler in Bezug auf die Nutzung eines unvollständigen Typ, auf