我正在嘗試創建一個宏來替換函數定義。這個宏應該在某個數組中註冊該函數的名稱,以便其他一些宏可以對該數組的元素進行操作。預處理器陣列生成
我想這樣做有一個可以在控制檯中使用的函數列表,而不必在添加新函數(實際上是多個列表)時編輯列表。
讀了一下後,我看了一下boost預處理器。不幸的是,似乎沒有辦法'保存'新陣列。 我想要做的是這樣的:
#define SOME_ARRAY (0,())
#define CONSOLE_COMMAND(a) \
#redefine SOME_ARRAY BOOST_PP_ARRAY_PUSH_BACK(SOME_ARRAY, #a) \
void a(some_arguments)
不幸的是,據我所知,重新定義不存在,#定義不能在宏中使用(請糾正我,如果我錯誤)。
我看了一下boost的預編譯器的SLOT,但我不認爲我可以在其中設置一個變量。
除了編寫我自己的預處理器之外,有什麼辦法可以做到嗎?不是,在學習如何寫一篇文章的時候會是一個好的開始? (使用MinGW和Code :: Blocks)。
我敢肯定,在不使用預處理器的情況下,可以輕鬆地維護您的問題。你爲什麼不描述這個問題? – jrok