错误:ICC未定义标识符“__func__”

时间:2014-06-28 03:49:19

标签: c++ visual-c++ icc

我正在尝试使用英特尔的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

1 个答案:

答案 0 :(得分:1)

根据英特尔XE的版本,__func__预先声明的标识符可能可用,也可能不可用。请务必使用/Qstd=c++11启用其可用性。

有关更多信息,请访问:

https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler