RAII steht für resource acquisition is initialization, was in etwa bedeutet, dass das Öffnen von Ressourcen mit der Initialisierung von Objekten verknüpft werden soll. Smartpointer sind ein prominentes Beispiel für RAII. Sie helfen, Speicherlecks zu vermeiden. Die folgenden Bibliotheken stellen Smartpointer und andere Hilfmittel zur Verfügung, um Speicher einfacher zu verwalten.
Boost.SmartPointers definiert zahlreiche Smartpointer. Einige dieser Smartpointer werden auch von der C++11-Standardbibliothek bereitgestellt. Andere finden sich ausschließlich in Boost.
Boost.PointerContainer stellt Container zur Verfügung, in denen dynamisch allokierte – also mit new
erstellte – Objekte gespeichert werden können. Die von dieser Bibliothek angebotenen Container geben die Objekte im Destruktur mit delete
frei, so dass Sie keine Smartpointer verwenden müssen.
Boost.Smartpointers und Boost.PointerContainer funktionieren nur mit Zeigern auf dynamisch allokierte Objekte. Möchten Sie andere Ressourcen zuverlässig am Ende eines Gültigkeitsbereichs schließen, können Sie entweder ressourcen-spezifische Klassen verwenden oder greifen auf die Bibliothek Boost.ScopeExit zu.
Boost.Pool hat nichts mit RAII, aber viel mit Speicherverwaltung zu tun. Diese Bibliothek bietet zahlreiche Klassen an, um Speicher in Ihrem Programm schneller zur Verfügung zu stellen.