我正在尝试使用英特尔的C ++编译器编译我的项目,但是我收到了很多这样的错误:
1>..\src\luascript.cpp(5889): error : identifier "__func__" is undefined
1> reportErrorFunc(getErrorDesc(LUA_ERROR_ITEM_NOT_FOUND));
1> ^
我之前使用MS Visual Studio编译了这个项目并且没有得到任何警告或错误但是ICC我得到了这个。以下是产生该错误的代码部分
int32_t LuaScriptInterface::luaNetworkMessageAddItem(lua_State* L)
{
// networkMessage:addItem(item)
Item* item = getUserdata<Item>(L, 2);
if (!item) {
reportErrorFunc(getErrorDesc(LUA_ERROR_ITEM_NOT_FOUND)); //This is the line that the error points to
lua_pushnil(L);
return 1;
}
//...
}
定义reportErrorFunc
是:
#define reportErrorFunc(a) reportError(__FUNCTION__, a, true)
还有:
#ifndef __FUNCTION__
#define __FUNCTION__ __func__
#endif
如果您需要我发布更多代码,请告诉我
我在Windows 7 SP1 x64上使用MSVC 2013 Ultimate和Intel C ++ Studio XE 2013 SP1 U2
答案 0 :(得分:1)
根据英特尔XE的版本,__func__
预先声明的标识符可能可用,也可能不可用。请务必使用/Qstd=c++11
启用其可用性。
有关更多信息,请访问:
https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler