Обзор библиотеки Boost
Материал из SEWiki
Версия от 11:20, 31 мая 2011; Aleksandr.kartashov (обсуждение | вклад)
Мы рассмотрим несколько полезных модулей библиотеки 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*
.
- размер объекта
Версия <<умного>> указателя с суффиксом _array
управляет временем жизни массива, а не
отдельного объекта