#定义带有命名空间的函数



我正在使用一些API,它几乎每年都会更改,我需要重新编译我的一些项目。为了能够处理一个文件,我想重新定义一些函数。这是的问题

#if API_VERSION < 12
#define somenamespace::someNEWfunction() someOLDfuncion()
#define somenamespace::someNEWnamespace                              //replace with nothing
#endif

所以我有两种情况。第一个是当我有一个功能完全相同,但被重命名并移动到它自己的新名称空间时,所以我只需要去掉名称空间部分,用旧名称替换它。第二个是当函数刚刚移动到它自己的新名称空间,但具有相同的名称时。

由于::符号,编译器不允许我编译它。

宏替换标记,而不是名称。

您正试图同时替换三个令牌(somenamespace::someNEWfunction(。

你不能那样做。

相反,考虑一个命名空间别名。

最新更新