Умные указатели в C++: boost::shared_ptr, boost::weak_ptr, boost::intrusive_ptr
Умные указатели (Smart pointers) - это, объекты, которые хранят указатели на динамическую память. Они действуют аналогично обычным указателям C++, за исключением того, что автоматически освобождают память в необходимый момент. Boost предоставляет шесть типов умных указателей:
- scoped_ptr - некопируемый автоматический указатель на объект;
- scoped_array - некопируемый автоматический указатель на массив;
- shared_ptr - разделяемый указатель на объект;
- shared_array - разделяемый указатель на массив;
- weak_ptr - вариант разделяемого указателя, не увеличивающий счетчик ссылок;
- intrusive_ptr - указатель со встроенным в объект счетчик ссылок
