【发布时间】:2015-05-28 23:53:40
【问题描述】:
有没有办法强制预处理器在标记化之前完全评估符号?
我想要GFR_SER_##token、GFR_SER_INT的输入输出示例。
例如,我正在尝试使用 Boost::PP 进行一些预处理器元编程。
对于粘贴字符串,这相当容易,因为您只需添加一个间接级别,例如:
#define str(s) xstr(s)
#define xstr(s) #s
但是,这不适用于标记化,因为 #define xtkz(t) ##t 是非法的,因为表达式开头的标记语法。
我尝试使用 BOOST_PP_IDENTIFY(s),它解析输入,但不幸的是导致 that Boost 调用的标记化,例如 GFR_SER_BOOST_PP_IDENTIFY(s)。这个问题有没有好的解决方法?
【问题讨论】:
标签: c++ boost metaprogramming