Ho una semplice domanda niubbo che non riesco a trovare una risposta a:Converti oggetto di std :: unique_ptr
In C++ come si fa a convertire un oggetto regolare
int i;
in un std::unique_ptr
?
std::unique_ptr<int> iptr = &i; //invalid
std::unique_ptr<int> iptr = static_cast<std::unique_ptr<int>>(&i); //invalid
Grazie.
Anche se per completezza, la funzione sarebbe buona, ma non penso che sia stata trascurata per quanto non necessaria. Ricorda che make_shared risolve un problema di allocazione di due oggetti contemporaneamente (non esiste un costruttore equivalente), mentre unique_ptr semplicemente non ha bisogno di questo (non ha overhead di progetto). –
Non è vero. Esiste ancora un'eccezione alla sicurezza se si costruiscono due unique_ptrs in una chiamata di funzione, ad esempio, che salva_unico salva. – Puppy
Non puoi evitarlo creando l'unique_ptr direttamente in quel punto? 'func (unique_ptr (new T), unique_ptr (new U))' –