【发布时间】:2014-03-11 10:48:14
【问题描述】:
class EntityFactory
{
public:
EntityFactory(tinyxml2::XMLElement * pEntitiesNode);
~EntityFactory();
std::vector< std::unique_ptr<Entity> > && TakeEntities();
protected:
std::vector< std::unique_ptr<Entity> > mEntities;
};
当我调用 TakeEntity 时,我想将 mEntities 向量移到此类之外。
我应该返回我移入的临时变量还是返回 &&?
std::vector< std::unique_ptr<Entity> > && EntityFactory::TakeEntities()
{
return std::move(mEntities);
}
//or
std::vector< std::unique_ptr<Entity> > EntityFactory::TakeEntities()
{
return std::move(mEntities);
}
我想要的最终结果是我可以从其他地方调用这个函数,并将场向量移动到调用点附近的一个变量中。
【问题讨论】:
标签: c++ c++11 vector move-semantics