boost ptr_vector:传输所有已分配对象的所有权

时间:2011-10-20 14:25:29

标签: c++ boost

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

我希望能够:

  1. 在列表中存储堆分配对象的列表。

  2. 将列表传递给MyClass。然后,MyClass获得此列表的所有权,将其存储在成员中。

  3. 在MyClass :: consume返回后,调用者不再具有对象的访问权限。

  4. 我不确定ptr_vector是否是合适的容器。

0 个答案:

没有答案