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:
- A string to indicate variadic args,
... in C
- A string to reference variadic args,
__VA_ARGS__ in C
Or an interesting alternative/parallel expansion is to expand the argument reference sequence to handle ranges. The new stuff will look like... maybe #{num}.
- When
num is just a decimal number, it stands for the nth argument.
- When
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.
- When
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.
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}.numis just a decimal number, it stands for the nth argument.numis 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.numis 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.