Forma correcta de transferir la propiedad de un std :: vector <std :: unique_ptr <int>> a una clase que se está construyendo

¿Cuál es la forma correcta de transferir la propiedad de unstd::vector<unique_ptr<int> > a una clase en construcción?

A continuación se muestra una representación en código de lo que quiero hacer. Me doy cuenta de que no es correcto (no se compilará) y viola la "singularidad" si le paso el vector al constructor por valor o por referencia. Quiero que Foo sea el nuevo propietario del vector, y que la función de llamada renuncie a la propiedad. ¿Necesito el constructor para tomar unastd::unique_ptr<std::vector<std::unique_ptr<int> > > ¿para hacer esto?

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

Cualquier ayuda sería muy apreciada, he buscado en la red buscando la forma correcta de hacerlo. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta