【发布时间】:2012-06-19 14:39:31
【问题描述】:
在使用单元测试框架时,我遇到了一种我想测试宏参数的情况。简单地说,我想扩展宏FOO(x) 使得FOO(int) 将是short 和FOO(anything_else) 将是long。
使用 C++ 模板,这当然不是问题。但在这里我需要一个真正的令牌替换,而不仅仅是一个typedef。 IE。 FOO(char) FOO(char) i; 应该是等于long long i; 的有效定义。
【问题讨论】:
-
最新的 C 标准具有宏的替换文本可以取决于第一个参数的表达式类型的功能。您可以将其用作构建块。
-
你看过 boost.pp 吗?如果你能用它破解一些东西?
-
@StefanMajewsky:我相信你指的是泛型?
标签: c++ c c-preprocessor