Comment Comment by fuhsnn There was a "__VA_TAIL__" WG14 proposal[1] that made it pretty simple to build custom map-like expansions, the OP's map example would be like:> #define T(x, ...) printf(#x " = %d\n", x); __VA_TAIL__()> T(1, 2, 3, 4, x, y, z)You can play with it in the proposal author's ellipsis[2] and my slimcc[3], it's simple enough to implement (only about 30 lines of C) so I kept it in despite not seeing signs of it getting accepted.[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3307.htm[2] https://codeberg.org/gustedt/ellipsis[3] https://github.com/fuhsnn/slimcc parent fuhsnn 14 days ago
> #define T(x, ...) printf(#x " = %d\n", x); __VA_TAIL__()
> T(1, 2, 3, 4, x, y, z)
You can play with it in the proposal author's ellipsis[2] and my slimcc[3], it's simple enough to implement (only about 30 lines of C) so I kept it in despite not seeing signs of it getting accepted.
[1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3307.htm
[2] https://codeberg.org/gustedt/ellipsis
[3] https://github.com/fuhsnn/slimcc