Open Artoria2e5 opened 3 years ago
Support of variadic macro would be great!
Patches welcome.
I seem to have worked on the #{num}
thing for a while at https://github.com/Artoria2e5/gpp/tree/var, but there's no way I have tested it. I have no idea what got into my head to handwrite a state machine. Even if it works the comma magic still needs to be added -- __VA_OPT__
in cpp.
A significant shortfall between gpp and cpp appears to be variadic macros. People have asked for it in Fortran and in JavaScript.
This would require expanding the meta definition to have:
...
in C__VA_ARGS__
in COr an interesting alternative/parallel expansion is to expand the argument reference sequence to handle ranges. The new stuff will look like... maybe
#{num}
.num
is just a decimal number, it stands for the nth argument.num
is a decimal number prefixed by..
, it stands for all arguments starting with the nth inclusive. A suffix is all arguments ending with the nth inclusive.num
is two decimal numbers spearated by..
, it stands for all arguments between the two numbers inclusive.Both cases still need some magic to remove the comma with an empty expansion.