Ein abstrakter Datentyp, der einen Zeiger simuliert und gleichzeitig zusätzliche Funktionen wie die automatische Speicherbereinigung oder die Überprüfung von Grenzen bereitstellt
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 Konstrukt?
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 jetzt einige der Typen bietet, die …
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 Produktionscode?
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 included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const …
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 Zeigern?
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 würde)) oder sollte …
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 Verwendung. Es scheint, als würde jeder empfehlen unique_ptr, …
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 wie Qt, wxWidgets und Bibliotheken wie Boost niemals intelligente Zeiger …
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 gemeinsam genutzten Ressource zu übertragen? Warum sollte ich das nicht einfach stattdessen tun? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { …
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 int(1));
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. Letztendlich stellt sich die Frage, welche verschiedenen Implementierungen von Smart Pointern …
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 . Geschlossen vor 8 …
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 überhaupt nicht! Ich habe Boosts heruntergeladen und alles, aber es wird …
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. Offensichtlich wird das Material, das auf …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.