Обзор библиотеки Boost

Материал из SEWiki
Перейти к: навигация, поиск

Мы рассмотрим несколько полезных модулей библиотеки Boost,

Умные указатели

Все рассмотренные в прошлом семестре <<умные> указатели представлены в библиотеке Boost.

  • scoped_ptr и scoped_array,
  • shared_ptr и shared_array,
  • weak_ptr --- ссылка на объект, который находится под управлением shared_ptr.

Следует отметить, что через этот указатель нельзя обратиться к объекту напрямую --- можно только создать shared_ptr, указывающий на этот объект, с помощью метода lock() --- если объект уже уничтожен, то возвращается пустой shared_ptr.

  • intrusive_ptr<T> --- аналог shared_ptr<T>; требует, чтобы у типа T

были определены методы intrusive_ptr_add_ref() и intrusive_ptr_release(). У intrusive_ptr, по крайней мере, два преимущества перед shared_ptr:

 * размер объекта intrusive_ptr совпадает с размером указателя,
 * объекта intrusive_ptr<T> можно проинициализировать T*.