boost::shared_ptr vs. std::auto_ptr?
-
Hi,
was ist besser? boost::shared_ptr oder std::auto_ptr? oder ist beides sogar das selbe?
-
nein, dass ist beides was anderes. Du vergleichst Äpfel und Birnen. Beides ist zwar Obst aber doch anders
es können mehrere 'shared_ptr's auf ein und den selben Speicher zeigen. Sie sind normal kopierbar und deswegen auch in STL-Containern benutzbar. Bei 'auto_ptr's gibt es immer nur einen Pointer auf den Speicher. Das kopieren wirkt zerstörend.
-
gibt es nix äquivalentes zu dem von boost? weil ich möchte aus Lizenzgründen und diversen anderen gründen sehr ungerne zusatzlibs benutzen wie boost
-
im C++ Standard? Nein, da gibt es nur auto_ptr. Aus dem Grund hat boost ja den shared_ptr implementiert, da das boost-Projekt versucht die Standard Library zu erweitern.
Lizenz rechtlich sollte es kein Problem sein den Code auch in Closed-Source Projekten einzusetzen.
-
macht aber die exe unnötig groß
-
Aha, dann erklär mal, warum dein Programm unnötig groß wird, wenn du diesen Header einbindest? Es ist ein ganz normaler Header (der noch ein paar weitere einbindet, aber das ist nicht ganz so wiechtig). Er verhält sich nicht anders, als Header, die du selbst schreibst. Die alternative, einen entsprechenden Smartpointer selber zu bauen wird dein Programm genausoviel größer werden lassen. Zusätzlich hast du aber Arbeit durch das implementieren und darfst Debuggen.
-
@helium:
du bist mir unsympatisch
-
-
Um auch noch einen Teil zum spaming beizutragen: ich bin für Loki::SmartPtr