Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ #定义包含名称空间的函数_C++_Visual Studio_C++17 - Fatal编程技术网

C++ #定义包含名称空间的函数

C++ #定义包含名称空间的函数,c++,visual-studio,c++17,C++,Visual Studio,C++17,我正在使用一些API,它几乎每年都在变化,我需要重新编译我的一些项目。为了能够处理单个文件,我想重新定义一些函数。 问题就在这里 #if API_VERSION < 12 #define somenamespace::someNEWfunction() someOLDfuncion() #define somenamespace::someNEWnamespace //replace with nothing #endif #如果

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

#if API_VERSION < 12
#define somenamespace::someNEWfunction() someOLDfuncion()
#define somenamespace::someNEWnamespace                              //replace with nothing
#endif
#如果API_版本<12
#定义somenamespace::someNEWfunction()SomeOldFunction()
#定义somenamespace::someNEWnamespace//替换为nothing
#恩迪夫
所以我有两种情况。第一个是当我有一个工作完全相同的函数,但被重命名并移动到它自己的新名称空间时,所以我需要去掉名称空间部分并用旧名称替换它。 第二个是当函数刚移动到它自己的新名称空间,但名称相同时

编译器不允许我编译它,因为
符号。

宏替换标记,而不是名称

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

你不能那样做


取而代之的是,考虑一个.< /p>你可能正在寻找一个。宏是解决这个问题的错误方法。@IgorTandetnik我有很多函数调用这个新名称空间,我只需要在不更改实际代码的情况下去掉它。不幸的是,名称空间别名对我没有帮助,我也看不到任何其他解决方案,只能使用宏:(@Danchyg1337,我们这里说的是多少?100s?1000s?正如你所发现的,宏也不起作用。你可以提供一个。展示你当前代码的示例,解释为什么它不能按原样编译,以及你想做什么来编译它。你可以提供你自己的

someNEWfunction
的实现,它将调用
someOLDfuncion
。您可以将其放入
somenamespace
命名空间中。