Что делает std::make_unique_for_overwrite() по сравнению с std::make_unique()?C++

Программы на C++. Форум разработчиков
Гость
Что делает std::make_unique_for_overwrite() по сравнению с std::make_unique()?

Сообщение Гость »


Похоже, что в C++20 мы получаем некоторые дополнительные служебные функции для интеллектуальных указателей, в том числе:

template unique_ptr make_unique_for_overwrite(); шаблон unique_ptr make_unique_for_overwrite(size_t n); и то же самое для std::make_shared с std::shared_ptr. Почему нет существующих функций:

template unique_ptr make_unique(Args&&... args); // с пустыми аргументами template unique_ptr make_unique(size_t n); достаточно? Разве существующие из них не используют для объекта конструктор по умолчанию?

Примечание. В более ранних версиях этих функций имя было make_unique_default_init().

Вернуться в «C++»