Właściwy sposób przeniesienia własności std :: vector <std :: unique_ptr <int>> na konstruowaną klasę
Jaki jest właściwy sposób przeniesienia własności astd::vector<unique_ptr<int> >
do budowanej klasy?
Poniżej znajduje się reprezentacja kodu tego, co chcę zrobić. Zdaję sobie sprawę, że nie jest to poprawne (nie kompiluje) i narusza „wyjątkowość”, czy przekazuję wektor konstruktorowi według wartości czy przez odniesienie. Chcę, aby Foo był nowym właścicielem wektora i aby funkcja wywołująca zrezygnowała z własności. Czy potrzebuję konstruktora, aby wziąłstd::unique_ptr<std::vector<std::unique_ptr<int> > >
zrobić to?
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;
}
Każda pomoc byłaby bardzo mile widziana - przeczesałem sieć, szukając właściwego sposobu, aby to zrobić. Dzięki!