Подтвердить что ты не робот

Класс STL для ссылочных указателей?

Это должно быть тривиально, но я не могу найти его (если такой класс не существует!)

Что такое класс STL (или набор классов) для интеллектуальных указателей?

UPDATE

Спасибо за ответы,
Должен сказать, что я не удивлен, что нет стандартной реализации.

В итоге я использовал этот http://archive.gamedev.net/reference/articles/article1060.asp

4b9b3361

Ответ 1

За исключением уже упомянутого TR1 shared_ptr, в STL нет указателя с подсчетом ссылок.

Я предлагаю вам использовать boost:: shared_ptr (загрузки boost будет достаточно, компилировать нечего, его реализация только в заголовке).

Вы также можете просмотреть интеллектуальные указатели из библиотек Loki (опять же, только для заголовка).

Обзор доступных интеллектуальных указателей см. там.

Ответ 2

Если вы не хотите/не можете использовать Boost и, ваш компилятор реализует TR1, вы можете используйте shared_ptr (заимствованный из Boost):

#include <tr1/memory>

...

std::tr1::shared_ptr<Foo> ptr(new Foo);

В противном случае нет, нет умных указателей, кроме std::auto_ptr в ванильном STL.

Ответ 3

Время марширует на, в С++ 11:

std::shared_ptr
std::weak_ptr

и др.

Ответ 4

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

Ответ 5

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