我有std::list
的std::unique_ptrs
到Entity
对象。当我试图循环浏览它们时,程序会说列表中的项目是不可访问的。该列表是一个成员变量,声明为private:列表< unique_ptr>。unique_ptr列表的内容不可访问
void EntityContainer::E_Update(int delta)
{
for (auto& child : children)
child->Update(delta);
}
其中Update()
是实体的公共职能。然而,在编译时,我得到以下错误:
c:\program files (x86)\microsoft visual studio 11.0\vc\include\xmemory0(617): error C2248:
'std::unique_ptr<_Ty>::unique_ptr'
: cannot access private member declared in class'std::unique_ptr<_Ty>'
尝试使用引用:'unique_ptr&child:children'。你正试图复制unique_ptrs。 –
juanchopanza