我有两个宏FOO2
和FOO3
:
#define FOO2(x,y) ...
#define FOO3(x,y,z) ...
我想定义一个新的宏FOO
,如下所示:
#define FOO(x,y) FOO2(x,y)
#define FOO(x,y,z) FOO3(x,y,z)
但这不起作用,因为宏不会在参数数量上过载.
在不修改FOO2
和FOO3
的情况下,有没有办法定义一个宏FOO
(使用__VA_ARGS__
或其他方式),以获得调度FOO(x,y)
到FOO2
和FOO(x,y,z)
到FOO3
的相同效果?