c++ - shared_ptr - make_unique
Diferencia entre boost:: scoped_ptr<T> y std:: unique_ptr<T> (2)
¿La única diferencia entre boost::scoped_ptr<T>
y std::unique_ptr<T>
es que std::unique_ptr<T>
tiene semántica de movimiento, mientras que boost::scoped_ptr<T>
es solo un puntero inteligente get / reset?
No, pero esa es la diferencia más importante.
La otra gran diferencia es que unique_ptr
puede tener un objeto destructor con ella, de forma similar a cómo puede shared_ptr
. A diferencia de shared_ptr
, el tipo de destructor es parte del tipo de unique_ptr
(la forma en que los asignadores forman parte de los tipos de contenedor STL).
unique_ptr
posee un objeto exclusivamente. No es copiable pero admite la transferencia de propiedad . Se introdujo como reemplazo del auto_ptr
ahora en desuso.
scoped_ptr
no se puede copiar ni mover . Es la opción preferida cuando quiere asegurarse de que los punteros se eliminen cuando se sale del alcance.