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