Hi all, I would like to propose a minor addition to the preprocessor, that has the potencial to significantly simplify writing and reading macros, give new features that were not there.
I propose a special token '__THIS_MACRO__'(similar to '__VA_ARGS__' and '__VA_OPT__' ), which will add the possibility to write recursive macros.
Simple example:
#define fold_right( op , head ,...) \
( head __VA_OPT__ ( op __THIS_MACRO__(op, __VA_ARGS__ )))
/* expands to (1 + (2 + (3))) */
int i = fold_right(+,1,2,3);
This can be used in many different scenarios,
* declaring enums with enum info(like names, count, etc) * boost describe struct * ... more examples in 'pdf' ...