Что делает std::make_unique_for_overwrite() по сравнению с std::make_unique()? ⇐ 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++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().
Мобильная версия