¿Es mejor usar shared_ptr.reset o operator =?
Estoy tratando de envolver mi cabeza en torno a los nuevos modismos para C ++ 11.
Parece que con shared_ptr al menos, hay una diferencia sustancial entre usarnew T()
ymake_shared<T>()
.
Pero, ¿qué hay de restablecer un puntero compartido para apuntar a una nueva instancia de algo? Anteriormente, normalmente usaríareset(new T())
miembro. Sin embargo, ¿esto no tiene el mismo problema que no usar make_shared () en primer lugar? (es decir, no permite que make_shared asigne el objeto, por lo tanto, ¿está obligado a colocar el recuento de referencia en una asignación separada en lugar de en la misma asignación que la propia T?)
Es simplemente mejor seguir adelante para usar:
mysharedptr = make_shared<T>(args...);
¿O hay un mejor camino?
¿Y no debería restablecer el reenvío variadic de la oferta como lo hace make_shared, para que uno pueda escribir mysharedptr.reset (args ...) ;?