shared_ptr make_unique c++ unique-ptr scoped-ptr

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.