É 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?

questionAnswers(2)

yourAnswerToTheQuestion