Каков правильный способ передачи права собственности на std::vector<unique_ptr<int> >
на построенный класс?
Ниже приведено представление кода того, что я хочу сделать. Я понимаю, что это неверно (не компилируется) и нарушает "уникальность", передаю ли я вектор конструктору по значению или по ссылке. Я хочу, чтобы Foo был новым владельцем вектора и хотел, чтобы вызывающая функция отказалась от владения. Мне нужен конструктор для выполнения std::unique_ptr<std::vector<std::unique_ptr<int> > >
для этого?
foo.h
class Foo
{
public:
Foo(vector<std::unique_ptr<int> > vecOfIntPtrsOwnedByCaller);
private:
vector<std::unique_ptr<int> > _vecOfIntPtrsOwnedByFoo;
}
foo.cpp
Foo::Foo(std::vector<std::unique_ptr< int> > vecOfIntPtrsOwnedByCaller)
{
_vecOfIntPtrsOwnedByFoo = vecOfIntPtrsOwnedByCaller;
}
Любая помощь будет высоко оценена - я прочесал сеть, ища правильный способ сделать это. Спасибо!