Maneira apropriada de transferir a propriedade de um std :: vector <std :: unique_ptr <int>> para uma classe que está sendo construída

Qual é a maneira correta de transferir a propriedade de umstd::vector<unique_ptr<int> > para uma classe sendo construída?

Abaixo está uma representação do código do que eu quero fazer. Eu percebo que não é correto (não compilar) e viola a "singularidade" se eu passar o vetor para o construtor por valor ou por referência. Eu quero que Foo seja o novo proprietário do vetor e que a função de chamada renuncie à propriedade. Eu preciso do construtor para ter umstd::unique_ptr<std::vector<std::unique_ptr<int> > > para fazer isso?

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;
}

Qualquer ajuda seria muito apreciada - vasculhei a rede procurando a maneira correta de fazer isso. Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion