Каковы преимущества использования std::make_unique
над new
оператором для инициализации std::unique_ptr
?
Другими словами, почему
std::unique_ptr<SomeObject> a = std::make_unique(SomeObject(...))
лучше, чем делать
std::unique_ptr<SomeObject> a = new SomeObject(...)
Я попытался найти много онлайн, и я знаю, что это хорошее правило, чтобы избежать new
оператора в современном C++, но я не уверен, какие преимущества в этом точном сценарии. Предотвращает ли это утечку памяти, которая может произойти? std::make_unique
ли делать std::make_unique
чем использовать new
?