如何使编译器根据版本跳过功能?

时间:2018-07-15 13:20:00

标签: c++ c-preprocessor

我正在尝试根据版本信息向编译器公开一个函数。

我有此版本信息。

#define LUA_VERSION_NUM     503

我只想在版本等于或小于501

时包括以下函数
static void lua_len(lua_State *L, int i) 
{
    //do something
}

在C ++中怎么可能?

1 个答案:

答案 0 :(得分:2)

#if LUA_VERSION_NUM <= 501
static void lua_len(lua_State *L, int i) 
{
    //do something
}
#endif

您可能想为501以上的版本提供一个空的lua_len,以防止编译错误:

#if LUA_VERSION_NUM <= 501
static void lua_len(lua_State *L, int i) 
{
    //do something
}
#else
static void lua_len(lua_State *L, int i) {}
#endif