I want to have a single macro call which takes in multiple function pointers, and each function pointer is called by a second macro which is a function declaration.
I want two macros on the form
#define FUNCTION_DEF(func) extern int func(void);
#define FUNCTION_DEFS(...) (???)
which is called as such
FUNCTION_DEFS(
myFunc1,
myFunc2,
otherFunc1,
otherFunc2,
defaultFunc
)
which expands into
FUNCTION_DEF(myFunc1)
FUNCTION_DEF(myFunc2)
FUNCTION_DEF(otherFunc1)
FUNCTION_DEF(otherFunc2)
FUNCTION_DEF(defaultFunc)
In other words, this single call to FUNCTION_DEFS
expands into function declarations of all the variadic arguments.
Currently I'm just skipping the first step and calling FUNCTION_DEF
on each function pointer, however a solution to this would be great.
Is this possible?
Edit:
Thanks to @Vality for introducing me to X-Macro. I found this post "Real-world use of X-Macros" which was exactly what I needed.