我一直在经历这个错误了一段时间,在每一个,我已经在Visual Studio 2013专业版与Cryengine2引擎SDK构建的项目。 大多数时候,我刚刚从这个编辑的功能:
void CMultipleGrabHandler::Reset()
{
std::for_each (m_handlers.begin(), m_handlers.end(), std::mem_fun (&CBaseGrabHandler::Reset));
std::vector <CAnimatedGrabHandler*>::iterator it = m_handlers.begin();
std::vector <CAnimatedGrabHandler*>::iterator end = m_handlers.end();
for ( ; it != end; ++it)
delete *it;
m_handlers.erase (m_handlers.begin (), m_handlers.end ());
}
为此:
void CMultipleGrabHandler::Reset()
{
}
我知道这不是一个很好的解决问题的方法,但它摆脱了的'mem_fun' : is not a member of 'std'
错误。
现在我正在寻找一个解决方案来克服这个问题,因为我刚开始一个新的项目,其中稳定性是关键工作; 如果我删除的身体很不好 CMultipleGrabHandler::Reset()
因为它可能导致在某些情况下崩溃。 我浏览过一个解决这个问题的互联网,但我还没有发现任何东西(我找到了最接近的事是什么解释mem_fun
一样)。
我曾尝试服用std::
关闭mem_fun
,但我只是得到一个mem_fun is undefined
错误,这表明这是不完全着手修补这个错误的正确方法。
该项目最初是在Visual Studio 2005中创建,并迁移到Visual Studio 2013的格式,当我第一次打开了解决方案。 也许这是问题的原因是什么? 怎样才可以解决吗?
编辑:增加了视觉工作室2015年 ,因为这也适用于新版本VS。