我刚刚将 2010 vs 解决方案导入 2012。
现在,当我编译程序(在 2010 年成功编译)时失败并出现几个错误,例如:
c:\users\frizzlefry\documents\visual studio 2010\projects\menusystem\menusystem\ktext.cpp(288) : see reference to function template instantiation 'std::function<_Fty> &std::function<_Fty>::operator =<int>(_Fx &&)' being compiled
1> with
1> [
1> _Fty=void (void),
1> _Fx=int
1> ]
转到 KText.cpp 中的第 288 行是在这个函数中:
void KText::OnKeyUp(SDLKey key, SDLMod mod, Uint16 unicode) {
IsHeld.Time(500); //Reset first repeat delay to 500 ms.
IsHeld.Enable(false); //Turn off timer to call the IsHeld.OnTime function.
KeyFunc = NULL; //LINE 288 //Set keyFunc to NULL
}
我检查了其中的一些,它们都与设置std::function<void()> func
为NULL
.
显然,我可以通过并更改一堆线,但我的程序设置方式检查:
if(func != NULL) func();
我该如何替换这种功能?