Олег Пронин
/
XS-libpanda-1.5.11
/
clib/doc/reference/PANDA_PP_VFUNC.md
Macro Overloading
Synopsys
#define simple_sum_macro(...) PANDA_PP_VFUNC(SIMPLE_MACRO, __VA_ARGS__)
#define SIMPLE_MACRO1(a) (a)
#define SIMPLE_MACRO2(a, b) (a + b)
// forcing at least one argument
#define MY_MACRO(first, ...) PANDA_PP_VFUNC(MY_MACRO, PANDA_PP_VJOIN(first, __VA_ARGS__))
#define MY_MACRO1(first) MY_MACRO2(first, default_message)
#define MY_MACRO2(first, msg) MY_MACRO3(first, default_mod, msg)
#define MY_MACRO3(first, mod, msg) std::cerr << first << mod << msg << std::endl;