我想跟踪宏扩展 - 宏扩展了多少次以及扩展发生时的参数是什么。
例如,
我有一个宏可能看起来像这样:
#define mymacro(x) int x
在我的代码中,我有这样的东西:
mymacro(a);
mymacro(b);
在预处理器扩展结束时(哦,是的,有没有办法让特定的宏成为最后一个扩展?),我想知道 mymacro 已经使用了多少次以及传递的 args 是多少。在这种情况下,它将是 2 次,并且 args 将是 a 和 b。
我正在研究 boost-preprocessor lib。他们有 BOOST_PP_ARRAY,但我不知道如何让它“静态”,以便我以后可以使用它。
我在 BOOST_PP_COUNTER 中找到了一些东西。看起来 BOOST_PP_COUNTER 是可以在预处理器短语中保持其状态的东西。但我仍然不清楚如何做我想做的事。