Jeśli używasz kompilatora wcześniejszego niż TR1, wówczas inteligentne wskaźniki
boost::shared_ptr
boost::weak_ptr
boost::scoped_ptr
boost::scoped_array
boost::shared_array
Jeśli twój kompilator ma już inteligentne wskaźniki, użyj ich.
Powodem jest oczywiste, że C ++ bez inteligentnych wskaźników w zasadzie nie jest C ++
Biblioteki boost ptr_contaier.
Wszystkie kontenery STL zostały zaimplementowane specjalnie do przechowywania wskaźników. Pojemniki nie tylko przejmują na własność wskaźniki, więc gdy pojemnik zostanie zniszczony, automatycznie niszczy wszystkie wskaźniki. ALE zapewnia również dostęp do elementów jako normalne odwołania do obiektów (nie wskaźników), dzięki czemu można łatwo używać obiektów w standardowych algorytmach bez funktorów opakowujących.
Biblioteki doładowania lambda. (patrz komentarz poniżej)
Funktory i spoiwa STL są odpowiednie dla prostych rzeczy. Ale boost :: lambda podjęło ten krok i znacznie upraszcza korzystanie ze standardowych algorytmów.
boost :: any i boost :: variant
Kiedy musisz trzymać przedmioty, nie chcąc znać ich dokładnego typu.
Pojemniki wieloindeksowe
Kontenery, które umożliwiają wiele różnych sposobów dostępu do elementów.
Dawno minęły czasy, kiedy masz wektor obiektów i oddzielną mapę do szybkiego wyszukiwania wektora. Zmniejsza to płytę grzewczą, którą musisz napisać, aby zachować dwa pojemniki podczas wkładania / usuwania elementów do pojemników.
boost :: lexical_cast
Prawdopodobnie najmniej przydatna w prawdziwym życiu, ale świetną zabawą jest doładowanie :: lexical_cast. Konwertuje dowolny obiekt na ciąg znaków (o ile w tym typie zdefiniowano odpowiednie operatory << i >>). Bardzo przydatne do odrzucania komunikatów o błędach podczas usuwania błędów.