A veces quiero delegar la construcción de objetos que posee una clase a una función separada. Algo como
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
donde la función solo está destinada a ser utilizada dentro de una clase que posee el Vertex. Claramente, esta función puede causar cierta confusión de pérdida de memoria, por lo que quiero dejarlo lo más claro posible. ¿Existe una convención de nomenclatura para tales funciones?
unique_ptrllamando a su release()función, y usar los punteros en bruto como en las viejas formas.
// FIXME: Allocation of raw pointer?
new_vertexasí que sé que el objeto está recién acuñado. Podrías llamarlo Create_new_vertexpara ser más claro. En cuanto a la idea de que no se debe gestionar la memoria heap sin punteros inteligentes, nunca había visto la verdad porque - de hecho, si usted no puede manejar la pila de memoria y sin ellos, no tienes negocio la gestión de memoria del montón con ellos, ya sea!

// TODO: Fix allocation of raw pointer.