我想根据预处理器定义声明对象的类型。问题是对象类型是用命名空间限定的:
OldNamespace1::OldNamespace2::OldClass MyObject;
现在何时__unit_test
定义我希望编译器看到:
NewNamespace1::NewNamespace2::NewClass MyObject;
我有 OldClass 的源代码,但我在OldNamespace1
. 我知道我显然可以使用#ifdef
条件包含来做到这一点,但这将需要#ifdef
在整个代码中进行很多操作。有没有办法只用一个(可能是复合的)来做到这一点#define
?