Описание тега shared-ptr
А shared_ptr
- это ненавязчивый интеллектуальный указатель, который управляет владением общим ресурсом. Множественныйshared_ptr
объекты могут совместно владеть одним и тем же ресурсом, который будет автоматически уничтожен, когда не останется "непустых" shared_ptr
относящиеся к нему объекты.
Обычно используются различные версии и реализации: boost::shared_ptr
(оригинал), std::shared_ptr
(входит в стандарт C++11) и std::tr1::shared_ptr
(из отчета TR1 о расширениях библиотеки отсутствуют некоторые функции, такие как псевдонимы).
Связанный шаблон класса weak_ptr
предназначен для использования с shared_ptr
и представляет собой не принадлежащую ссылку на ресурс, которым управляет shared_ptr
. Это полезно, чтобы избежать циклических ссылок. Аweak_ptr
также может использоваться в качестве "ссылки для отслеживания" и преобразовываться в shared_ptr
временно принять долевое владение, когда это необходимо.