Ho bisogno di un contenitore di puntatori che assuma la proprietà dei puntatori, ovvero quando un elemento viene rimosso o il contenitore non rientra nell'ambito, libera tutti i suoi puntatori, come in boost::ptr_vector
.Qt equivalente a boost :: ptr_vector?
QList<QScopedPointer<AbstractClass> >
non funziona (errori di compilazione, nessun costruttore di copia?).
In questo momento sto usando QList<QSharedPointer<AbstractClass> >
, ma sembra un eccessivo, con il suo conteggio dei riferimenti e il costoso mutex per il multithreading.
Edit: Ho appena imparato a conoscere QPtrList (grazie @ForEveR) che era quella equivalente in Qt3, ma è stato rimosso da versioni successive. Non capisco perché lo rimuovono.
Wow, domanda interessante, ma sì, QScopedPointer non è pensato per essere copiato in quanto detiene la proprietà singola. – lpapp
Sei soddisfatto di una soluzione C++ 11 o hai bisogno di supportare lo standard anche prima? unique_ptr può essere messo in un vettore std ::, almeno. QVector è più complicato. – lpapp
@lpapp Sono su VS2010 per quel progetto, quindi non posso usare personalmente C++ 11. – sashoalm