Was ist ein intelligenter Zeiger und wann sollte ich einen
Ein abstrakter Datentyp, der einen Zeiger simuliert und gleichzeitig zusätzliche Funktionen wie die automatische Speicherbereinigung oder die Überprüfung von Grenzen bereitstellt
Was ist ein intelligenter Zeiger und wann sollte ich einen
std::unique_ptr unterstützt Arrays, zum Beispiel: std::unique_ptr<int[]> p(new int[10]); aber wird es gebraucht? wahrscheinlich ist es bequemer zu bedienen std::vectoroder std::array. Finden Sie eine Verwendung für dieses
Ok, das letzte Mal, als ich C ++ für std::auto_ptrmeinen Lebensunterhalt schrieb, war alles, was die Standardbibliothek zur Verfügung hatte, und boost::shared_ptrwar der letzte Schrei. Ich habe mich nie wirklich mit den anderen Boosts für intelligente Zeigertypen befasst. Ich verstehe, dass C ++ 11...
Was ist der Unterschied zwischen den folgenden Zeigern? Wann verwenden Sie jeden Zeiger im Produktionscode, wenn überhaupt? Beispiele wären willkommen! scoped_ptr shared_ptr weak_ptr intrusive_ptr Verwenden Sie Boost im
Was ist los mit diesem Programm? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } Der Fehler: In file...
Was ist in der Praxis mit C ++ RAII , was sind intelligente Zeiger , wie werden diese in einem Programm implementiert und welche Vorteile bietet die Verwendung von RAII mit intelligenten
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...
Ich habe Probleme, die Verwendung intelligenter Zeiger als Klassenmitglieder in C ++ 11 zu verstehen. Ich habe viel über intelligente Zeiger gelesen und glaube zu verstehen, wie unique_ptrund shared_ptr/ oder wie ich weak_ptrim Allgemeinen arbeite. Was ich nicht verstehe, ist die tatsächliche...
Ich habe in einigen Artikeln gelesen, dass rohe Zeiger fast nie verwendet werden sollten. Stattdessen sollten sie immer in intelligente Zeiger eingeschlossen werden, unabhängig davon, ob es sich um Gültigkeitsbereichs- oder gemeinsam genutzte Zeiger handelt. Ich bemerkte jedoch, dass Frameworks...
Ich habe den Clang-Quellcode durchgesehen und diesen Ausschnitt gefunden: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Warum sollte ich will std::moveein std::shared_ptr? Gibt es einen Grund, das Eigentum an einer...
Hat std::make_uniqueirgendwelche Effizienzvorteile wie std::make_shared? Im Vergleich zum manuellen Erstellen std::unique_ptr: std::make_unique<int>(1); // vs std::unique_ptr<int>(new
Vergleiche, Vor- und Nachteile und wann zu verwenden? Dies ist ein Spin-off aus einem Garbage Collection-Thread, in dem eine meiner Meinung nach einfache Antwort viele Kommentare zu bestimmten Smart-Pointer-Implementierungen generierte. Es schien also sinnvoll, einen neuen Beitrag zu beginnen....
Es ist schwer zu sagen, was hier gefragt wird. Diese Frage ist mehrdeutig, vage, unvollständig, zu weit gefasst oder rhetorisch und kann in ihrer gegenwärtigen Form nicht angemessen beantwortet werden. Hilfe zur Klärung dieser Frage, damit sie wieder geöffnet werden kann, finden Sie in der Hilfe ....
Ich bin gerade so frustriert, nachdem ich mehrere Stunden lang versucht habe herauszufinden, wo sich shared_ptr befindet. Keines der Beispiele, die ich sehe, zeigt vollständigen Code, der die Überschriften für shared_ptr(und das Arbeiten) enthält. Einfach gesagt std, tr1und <memory>hilft...
Wie hoch ist der Overhead von intelligenten Zeigern im Vergleich zu normalen Zeigern in C ++ 11? Mit anderen Worten, wird mein Code langsamer, wenn ich intelligente Zeiger verwende, und wenn ja, wie viel langsamer? Insbesondere frage ich nach C ++ 11 std::shared_ptrund std::unique_ptr....
Die Frage passt wirklich in den Titel: Ich bin gespannt, was der technische Grund für diesen Unterschied ist, aber auch die Gründe? std::shared_ptr<void> sharedToVoid; // legal; std::unique_ptr<void> uniqueToVoid; //
Angenommen, ich habe eine Klasse mit einer Methode, die a zurückgibt shared_ptr. Was sind die möglichen Vor- und Nachteile einer Rücksendung nach Referenz oder Wert? Zwei mögliche Hinweise: Frühe Objektzerstörung. Wenn ich die shared_ptrby (const) -Referenz zurückgebe, wird der Referenzzähler nicht...
Ich habe auto_ptrgehört, dass es in C ++ 11 veraltet ist. Was ist der Grund dafür? Auch ich würde gerne den Unterschied zwischen auto_ptrund kennen
Was ist die beste Methode, um shared_ptreinen abgeleiteten Typ an eine Funktion zu übergeben, die shared_ptreinen Basistyp verwendet? Ich übergebe im Allgemeinen shared_ptrs als Referenz, um eine unnötige Kopie zu vermeiden: int foo(const shared_ptr<bar>& ptr); aber das funktioniert...
Herr Lidström und ich hatten einen Streit :) Die Behauptung von Herrn Lidström ist, dass für ein Konstrukt shared_ptr<Base> p(new Derived);Base keinen virtuellen Destruktor benötigt: Armen Tsirunyan : "Wirklich? Wird der shared_ptr korrekt bereinigt? Könnten Sie bitte in diesem Fall zeigen,...