MSa*_*ers 6 c c++ c-preprocessor
使用单元测试框架,我遇到了一个我想测试宏参数的情况.简单地说,我想扩展宏观FOO(x),这FOO(int)将是short和FOO(anything_else)将来的long.
使用C++模板,当然这不是问题.但在这里我需要一个真正的令牌替代品,而不仅仅是一个typedef.即FOO(char) FOO(char) i;应该是一个有效的定义等于long long i;.
你想做的事是不可能的。
宏由 c 预处理器计算,顾名思义,它在编译器运行之前运行。它还不知道你的符号是什么类型。
为什么不为该类型创建一个类,在编译器评估该类型时将其自身转换为正确的内容。