У меня есть std::vector
с именем args
(я не знаю размер вектора во время компиляции) и неподвижный тип NonMoveable
.
Я хочу создать вектор изтот же размер, что и у аргументов, так что он равен {NonMovable(args[0], additional_arg), NonMovable(args[1], additional_arg), …, NonMovable(args.back(), additional_arg)}
. Мне не нужно менять размер вектора позже.Как мне это сделать?
Я не могу reserve()
, тогда emplace_back()
, потому что emplace_back()
требует перемещения (чтобы разрешить перераспределение, которое в моем случае невозможно)
Я не делаюхочу использовать std::list
, потому что он не является смежным.