инициализация массивов для std::unique_ptr<... []>

Boris Vinogradov
Boris Vinogradov

В C++ сущетвует конструкция для инициализации динамических массивов:

int *y = new int[3]{1, 2, 3};

В тоже время для создания массива объектов подобной конструкции нет.

Предлагаю добавить инициалзиацию для массивов которые управляются std::unique_ptr:

std::unique_ptr x = make_unique<int []>({1, 2, 3});

Также сделать дополнение конструктора unique_ptr для инциализации элементов подобным образом с помощью deduction guides.

4
рейтинг
1 комментарий
yndx-antoshkka

Мысль занятная. Рекомендую начать с написания прототипа и добавлением его в Boost: https://github.com/boostorg/smart_ptr/blob/develop/include/boost/smart_ptr/make_unique.hpp

Там уже есть полезные дополнительные функции, которых нет в стандарте.

yndx-antoshkka
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения