Почему make_unique() недопустимо, а make_shared() разрешено?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему make_unique() недопустимо, а make_shared() разрешено?

Сообщение Anonymous »

В предложении дляshared_ptr есть этот абзац:
https://www.open-std.org/JTC1/SC22/WG21/ docs/papers/2014/n3920.html

Неудачный случай, когда unique_ptr потерял поддержку U[N], вынуждает меня утверждать, что в случае с Shared_ptr, указанная поддержка по существу бесплатна, как с точки зрения сложности реализации, так и сложности спецификации. Пожалуйста, не удаляйте его. Вместо этого рассмотрите возможность восстановления unique_ptr.

Это просто случай, когда «никто с тех пор не предлагал восстановить unique_ptr', или есть какая-то техническая причина или причина обратной совместимости, по которой это невозможно сделать?
Я рассмотрел эти два существующих вопроса:
  • Почему `make_unique` запрещен?
  • Почему разрешен Shared_ptr?
Первый вопрос был написан заранее

Код: Выделить всё

shared_ptr
, а второй учитывает, почему был добавлен общий_ptr, а не почему он не был добавлен в unique_ptr.

Подробнее здесь: https://stackoverflow.com/questions/785 ... n-is-legal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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