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!