Класс STL для указателей с подсчетом ссылок?
Это должно быть тривиально, но я не могу найти его (если такой класс не существует!)
Что такое класс STL (или набор классов) для умных указателей?
ОБНОВИТЬ
Спасибо за ответы,
Должен сказать, я удивлен, что стандартной реализации нет.
Я закончил тем, что использовал это: http://archive.gamedev.net/reference/articles/article1060.asp
5 ответов
За исключением уже упомянутого TR1 shared_ptr, в STL нет указателя с подсчетом ссылок.
Я предлагаю вам использовать boost::shared_ptr (загрузки boost будет достаточно, компилировать нечего, его реализация только для заголовков).
Вы также можете взглянуть на интеллектуальные указатели из библиотек Loki (опять же, реализация только с заголовками).
Обзор доступных интеллектуальных указателей см. Там.
Если вы не хотите / не можете использовать Boost и ваш компилятор реализует TR1, вы можете использовать shared_ptr
(заимствовано из Boost):
#include <tr1/memory>
...
std::tr1::shared_ptr<Foo> ptr(new Foo);
В противном случае, нет никаких умных указателей, кроме std::auto_ptr
в ванильном STL.
Есть альтернатива, реализованная в течение некоторого времени в STL PLUS, см. В Source Forge
"STLplus was originally intended as a library to extend the STL by providing missing container data structures such as smart-pointers, matrices, trees and graphs."