mudança std :: make_shared () no C ++ 17
Nocppref, o seguinte é válido até C ++ 17:
código comof(std::shared_ptr<int>(new int(42)), g())
pode causar vazamento de memória seg
é chamado depoisnew int(42)
e lança uma exceção, enquantof(std::make_shared<int>(42), g())
é seguro, pois duas chamadas de função nunca são intercaladas.
Gostaria de saber qual alteração introduzida no C ++ 17 torna isso não mais aplicável.