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!

questionAnswers(1)

yourAnswerToTheQuestion