¿ std::make_unique
Tiene algún beneficio de eficiencia como std::make_shared
?
En comparación con la construcción manual std::unique_ptr
:
std::make_unique<int>(1); // vs
std::unique_ptr<int>(new int(1));
make_shared
puede asignar tanto el espacio para el objeto como el espacio para el bloque de control juntos en una sola asignación. El costo de esto es que el objeto no se puede desasignar por separado del bloque de control, por lo que si usa weak_ptr
mucho, puede terminar usando más memoria.
make_shared
Tiene alguna eficiencia sobre solo escribir el código de mano larga?