Question

Cela devrait être trivial mais je n'arrive pas à le trouver (sauf si une telle classe existe!)

Qu'est-ce que la classe STL (ou un ensemble de classes) pour les pointeurs intelligents?

MISE À JOUR

Merci pour les réponses,
Je dois dire que je suis surpris qu'il n'y ait pas d'implémentation standard.

J'ai finalement utilisé celui-ci: http://archive.gamedev.net/reference /articles/article1060.asp

Était-ce utile?

La solution

À l'exception du TR1 shared_ptr déjà mentionné, il n'y a pas de pointeur compté en référence dans STL.

Je vous suggère d'utiliser boost :: shared_ptr (le téléchargement de boost sera suffisant, il n'y a rien à compiler, sa mise en oeuvre est en-tête uniquement).

Vous pouvez également consulter les pointeurs intelligents des bibliothèques Loki (à nouveau, implémentation avec en-tête uniquement).

Pour obtenir un aperçu des pointeurs intelligents disponibles, voir à cet endroit .

Autres conseils

Si vous ne voulez pas / ne pouvez pas utiliser Boost et , votre compilateur implémente TR1 , vous pouvez utiliser shared_ptr (emprunté à Boost):

#include <tr1/memory>

...

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

Sinon, non, il n'y a pas de pointeur intelligent à l'exception de std::auto_ptr dans STL vanille.

L'heure avance, en C ++ 11:

std::shared_ptr
std::weak_ptr

etc.

Pour les objets COM, utilisez CComPtr < ; > .

Il existe une alternative implémentée depuis un certain temps dans STL PLUS, voir 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."

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top