2 comments
There are a couple of constructs that you end up re-creating as soon as you need non-trivial preprocessing.<p>One of those is the two-stage CAT, another one is the NARG the article talks about.<p>__COUNTER__ is going to be added to C29, the next version of the standard, maybe there's hope for __VA_COUNT__ and __CAT__ too!
You don't need to extend the preprocessor to have MAP: <a href="https://github.com/swansontec/map-macro" rel="nofollow">https://github.com/swansontec/map-macro</a>