次の一連のマクロがあります。
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
。
BOOST_PP_VARIADIC_SIZE
最初に評価してから連結できる方法はありmacro_
ますか?