Die Boost C++ Bibliotheken

Kapitel 1. Boost.SmartPointers

Inhaltsverzeichnis

Die Bibliothek Boost.SmartPointers bietet verschiedene Smartpointer an. Sie helfen, dynamisch reservierte Objekte zu verwalten. Diese werden in Smartpointern verankert, die die dynamisch reservierten Objekte im Destruktor freigeben. Da Destruktoren ausgeführt werden, wenn der Gültigkeitsbereich von Smartpointern endet, ist die Freigabe von dynamisch reservierten Objekten garantiert. Es kann nicht zu Speicherlecks kommen, weil ein delete vergessen wurde.

Die Standardbibliothek kennt seit C++98 den Smartpointer std::auto_ptr. Dieser gilt seit C++11 als veraltet. Mit dieser Version haben neue und bessere Smartpointer Einzug in den Standard gehalten. std::shared_ptr und std::weak_ptr stammen ursprünglich aus Boost.SmartPointers und heißen hier boost::shared_ptr und boost::weak_ptr. Zu std::unique_ptr gibt es kein Gegenstück. Dafür bietet Boost.SmartPointers mit boost::scoped_ptr, boost::scoped_array, boost::shared_array und boost::intrusive_ptr vier weitere Smartpointer an, die in der Standardbibliothek fehlen.

Anmerkung

Die Boost-Bibliotheken bieten seit der Version 1.57.0 ein Gegenstück zu std::unique_ptr an. Die Klasse heißt boost::movelib::unique_ptr und befindet sich nicht in Boost.SmartPointers, sondern in Boost.Move. Boost.Move wird in diesem Buch nicht vorgestellt. Diese Bibliothek bietet eine Emulation von Rvalue-Referenzen für Entwicklungsumgebungen an, die C++11 nicht unterstützen. Arbeiten Sie mit C++11, können Sie boost::movelib::unique_ptr und Boost.Move ignorieren.