当ptr_vector作为参数传递给函数时,是否释放所包含对象的所有权?
class MyClass {
void MyClass::consume(ptr_vector<Object>& objects)
{
boost::swap(objects,objects_);
}
ptr_vector<Object> objects_;
};
void foo()
{
ptr_vector<Object> objects;
objects.push_back( new Object() );
MyClass myClass;
myClass.consume(objects);
}
我希望能够:
在列表中存储堆分配对象的列表。
将列表传递给MyClass。然后,MyClass获得此列表的所有权,将其存储在成员中。
在MyClass :: consume返回后,调用者不再具有对象的访问权限。
我不确定ptr_vector是否是合适的容器。