我有以下一组宏:
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_
?