classe STL para ponteiros contou-referência?
-
19-08-2019 - |
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
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 há .
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."