2014-09-11 23 views
15

Quindi, quando si programma in Qt mi piace andare con l'implementazione Qt il più lontano possibile. Per quanto ho visto non c'è nessuna versione Qt del std::unique_ptr o c'è?C++ Qt dov'è la versione std :: unique_ptr Qt?

Quali sarebbero le alternative che producono lo "stesso" risultato in Qt se non esiste?

+0

Perché vuoi specificamente una versione Qt? Stai cercando di scrivere in C++ senza una libreria standard? –

+2

'QScopedPointer' –

+1

@MikeSeymour non particolarmente, ma non è necessario mescolare lo standard con Qt quando l'implementazione Qt copre tutto :) – deW1

risposta

24

L'equivalente Qt a std::unique_ptr è QScopedPointer.

È significativamente meno utile in quanto non supporta la semantica di spostamento, rendendolo più vicino nell'utilità a C++ 03 std::auto_ptr (Why is auto_ptr being deprecated?).

+2

'QScopedPointer' non è rotto come' auto_ptr' è? Non trasferisce la proprietà su copia e assegnazione, semplicemente non supporta la copia e l'assegnazione. (afaict, leggendo la documentazione) –

+0

@Benjamin Lindley infatti, non ha affatto un costruttore di copie, nemmeno uno non-const. – ecatmur

+0

TBH ha deleteri personalizzati, che auto_ptr non ha avuto. – MSalters