make-shared

¿Hacer compartido es realmente más eficiente que nuevo?

Estaba experimentando con shared_ptr y make_shared desde C++11 y programé un pequeño ejemplo de juguete para ver lo que realm ... y explicar por qué make_shared es el camino a seguir en términos de eficiencia, a pesar de la sobrecarga de copia delineada?

¿Cómo pasar deleter para hacer compartido?

Desde C++11, debido a varias razones, los desarrolladores tienden a usar clases de puntero inteligente para objetos dinámicos ... rrecta de hacerlo? Parece que los compiladores, al menos gcc, da un error a, auto ip = make_shared<int>(12, deleter);

Qué sucede cuando se usa make shared

Me interesa si estas dos líneas de código son las mismas: shared_ptr<int> sp(new int(1)); // double allocation? share ... )); // just one allocation? Si esto es cierto, ¿podría alguien explicar por qué es solo una asignación en la segunda línea?

std:: make shared () change in C++17

En cppref , lo siguiente se mantiene hasta C++17: Código como {[0] } puede causar un pérdida de memoria si {[1] } es l ... os llamadas a funciones nunca se intercalan. Me pregunto qué cambio introducido en C++17 hace que esto ya no sea aplicable.