У меня есть несколько объектов одного и того же класса в массиве, на который указывал unique_ptr, и каждый объект может быть создан только с помощью явного конструктора, поскольку несколько конструкторов должны быть переданы конструктору.
При инициализации я собираюсь создать такой unique_ptr следующим образом:
unique_ptr<ClassA [ ] > arrayA = make_unique<ClassA [ ]>(100, some args to be passed );
Но похоже, что ни одна версия make_unique не может сделать это, как указано выше.Согласно документации: если make_unique создает массив, он принимает только один аргумент, равный размеру массива.
Я не могу использовать вектор в этих сценах, так как ClassA - это очередь сообщений, которая используется совместно.несколькими потоками (производителями / пользователями), а вектор переместит элементы на новое место, если места недостаточно.
Есть ли другой способ, в нем я могу сделать массив класса, который имеет только явный конструктор?В то же время я все еще хочу использовать unique_ptr для управления ими.
Спасибо!