std :: make_shared () cambio en C ++ 17
Encppref, lo siguiente se mantiene hasta C ++ 17:
código comof(std::shared_ptr<int>(new int(42)), g())
puede causar una pérdida de memoria sig
se llama despuésnew int(42)
y lanza una excepción, mientrasf(std::make_shared<int>(42), g())
es seguro, ya que dos llamadas a funciones nunca se intercalan.
Me pregunto qué cambio introducido en C ++ 17 hace que esto ya no sea aplicable.