Класс 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.

Время идет, в C++11:

std::shared_ptr
std::weak_ptr

и т.п.

Для COM-объектов используйте CComPtr<>;;.

Есть альтернатива, реализованная в течение некоторого времени в 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."

Другие вопросы по тегам