我想跟蹤宏擴展 - 宏擴展了多少次,擴展發生時參數是多少。跟蹤宏擴展
例如,
我有一個宏可能是這樣的:
#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