Kadang-kadang saya ingin mendelegasikan konstruksi objek yang dimiliki kelas ke fungsi terpisah. Sesuatu seperti
Vertex* new_vertex(const Options& options) {
// do stuff...
return new Vertex(...);
}
di mana fungsi ini hanya dimaksudkan untuk digunakan dalam kelas yang memiliki Vertex. Jelas fungsi ini dapat menyebabkan kebingungan kehabisan memori, jadi saya ingin membuatnya sejelas mungkin. Apakah ada konvensi penamaan untuk fungsi-fungsi seperti itu?
unique_ptrdengan memanggil release()fungsinya, dan menggunakan pointer mentah seperti cara lama.
// FIXME: Allocation of raw pointer?
new_vertexjadi saya tahu objek baru dicetak. Anda bisa menyebutnya Create_new_vertexlebih jelas. Adapun gagasan bahwa Anda tidak harus mengelola memori tumpukan tanpa petunjuk pintar, tidak pernah melihat kebenaran dalam hal itu - bahkan jika Anda tidak dapat mengelola memori tumpukan tanpa mereka, Anda juga tidak punya bisnis mengelola memori tumpukan dengan mereka!

// TODO: Fix allocation of raw pointer.