Существует вектор std::unique_ptr<A>
. Мне нужно передать эти данные в функцию, которая ожидает вектор A
.
Я пытался использовать std::transform
, например:
std::vector<std::unique_ptr<A>> a;
std::vector<A> aDirect;
std::transform(a.begin(), a.end(),
std::back_inserter(aDirect),
[](std::unique_ptr<A> element)-> A { return *element; });
, но, похоже, std::transform
пытается скопировать элементы a
в какой-то момент, чтобы это не сработало, не получается попытаться сослаться на удаленную функцию.
Конечно, я мог бы просто сделать это вручную с помощью для l oop, но мне было интересно, есть ли более элегантный способ сделать это.