É seguro usar o vector.emplace_back (new MyPointer); A falha dentro do vetor pode levar à perda de memória?
É seguro usar
vector.emplace_back( new MyPointer() );
Ou poderia uma exceção lançada ou alguma falha dentro do vetor causar vazamento de memória?
Seria melhor fazer alguma forma do seguinte, onde você coloca o ponteiro em um unique_ptr temporário primeiro.
vector.emplace_back( std::unique_ptr<MyPointer>( new MyPointer() ) );
Então, se ocorrer uma falha de vetor, o unique_ptr temporário ainda limpará a memória?