Pergunta

Esta deve ser trivial, mas eu não consigo encontrá-lo (a menos que não existe tal classe!)

O que é a classe STL (ou conjunto de classes) para ponteiros inteligentes?

Atualizar

Obrigado pelas respostas,
Devo dizer que estou surpreso não há nenhuma implementação padrão.

Acabei usando este: http://archive.gamedev.net/reference /articles/article1060.asp

Foi útil?

Solução

Com a excepção do shared_ptr TR1 já mencionada, não há nenhum ponteiro contou-referência em STL.

Eu sugiro que você use boost :: shared_ptr (download impulso será suficiente, não há nada para compilar, sua implementação é header-only).

Você também pode querer ter um olhar para ponteiros inteligentes de bibliotecas Loki (implementação de novo, só de cabeçalho).

Para uma visão geral dos ponteiros inteligentes disponíveis, consulte .

Outras dicas

Se você não quer / não pode usar impulso e seus implementos compilador TR1 , você pode usar shared_ptr (emprestado do Boost):

#include <tr1/memory>

...

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

Caso contrário, não, não há ponteiros inteligentes, exceto std::auto_ptr em STL baunilha.

O tempo marcha em diante, em C ++ 11:

std::shared_ptr
std::weak_ptr

etc.

Para COM objetos, use CComPtr <> .

Há uma alternativa implementada por algum tempo em STL PLUS, consulte a forja fonte
"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."

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top