0
我有以下組宏:串連嵌套的宏觀結果
macro_1(p1)
macro_2(p1, p2)
macro_3(p1, p2, p3)
etc.
現在,我不想再拍通用的宏,將評估與前面的,我試圖做到這一點,像這樣:
#define macro_x(...) macro_ ## BOOST_PP_VARIADIC_SIZE(__VA_ARGS__) (__VA_ARGS__)
這個想法背後的是,BOOST_PP_VARIADIC_SIZE(__VA_ARGS__)
評估正確的計數參數,然後將轉向正確的宏。
但是,不幸的是,我發現BOOST_PP_VARIADIC_SIZE()
將被連接到macro_
後被評估,導致不需要的代碼macro_BOOST_PP_VARIADIC_SIZE
。
有沒有辦法可以先評估0,然後連接到macro_
?
神聖的莫爾!可變宏! D:我喜歡它的聲音:) – Rubens
只需使用'BOOST_PP_OVERLOAD'。你目前的問題可以通過使用'BOOST_PP_CAT'而不是'##'來解決,但是這個宏已經沒有必要使用它了。 – chris
@chris - 謝謝,但請將它寫爲答案,以便我可以標記它。 – TCS