Domanda

Questo dovrebbe essere banale ma non riesco a trovarlo (a meno che tale classe non esista!)

Che cos'è la classe STL (o insieme di classi) per i puntatori intelligenti?

Aggiorna

Grazie per le risposte,
Devo dire che sono sorpreso che non ci siano implementazioni standard.

Ho finito per usare questo: http://archive.gamedev.net/reference /articles/article1060.asp

È stato utile?

Soluzione

Ad eccezione del già citato TR1 shared_ptr, in STL non è presente alcun puntatore conteggio dei riferimenti.

Ti suggerisco di usare boost :: shared_ptr (il download boost sarà sufficiente, non c'è nulla da compilare, la sua implementazione è solo intestazione).

Potresti anche voler dare un'occhiata agli smart pointer delle librerie Loki (di nuovo, implementazione solo intestazione).

Per una panoramica degli smart pointer disponibili, vedere qui .

Altri suggerimenti

Se non vuoi / non puoi usare Boost e il tuo compilatore implementa TR1 , puoi utilizzare shared_ptr (preso in prestito da Boost):

#include <tr1/memory>

...

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

Altrimenti, no, non ci sono puntatori intelligenti tranne std::auto_ptr in vanilla STL.

Il tempo marcia avanti, in C ++ 11:

std::shared_ptr
std::weak_ptr

ecc.

Per gli oggetti COM, utilizzare CComPtr < ; gt &;.

Esiste un'alternativa implementata da tempo in STL PLUS, vedi 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."

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top