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