我想跟踪宏扩展 - 宏扩展了多少次,扩展发生时参数是多少。跟踪宏扩展
例如,
我有一个宏可能是这样的:
#define mymacro(x) int x
,并在我的代码,我有这样的事情:
mymacro(a);
mymacro(b);
在预处理结束扩展(是的,有没有办法让一个特定的宏成为最后扩展?),我想知道多少次mymacro已被使用,哪些参数通过。在这种情况下,它会是2倍,参数是a和b。
我正在研究boost-preprocessor lib。他们有BOOST_PP_ARRAY,但我不知道如何使它成为“静态”,以便我可以在以后使用它。
我在BOOST_PP_COUNTER中发现了一些东西。它看起来像BOOST_PP_COUNTER是可以在预处理器短语中保持其状态的东西。但我仍不清楚如何做我想做的事。
如果您的编译器支持,可以通过向输出编译器消息的宏添加一行来完成此操作。 – 2012-03-01 02:07:18
你能更具体吗?我正在使用Clang – 2012-03-01 02:32:50
这个问题我并不清楚,但是你正在通过检查发生的事情并且希望得到结果(即它被调用的内容等)在预处理时可用,以便你可以做一些事情有它,对吧? – 2012-03-01 07:55:41