Вопрос

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

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

Обновить

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

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

Это было полезно?

Решение

За исключением уже упомянутого 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, см. исходная кузница

"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."

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top