Remix.run Logo
▲ teo_zero 4 hours ago

There are a couple of constructs that you end up re-creating as soon as you need non-trivial preprocessing.

One of those is the two-stage CAT, another one is the NARG the article talks about.

__COUNTER__ is going to be added to C29, the next version of the standard, maybe there's hope for __VA_COUNT__ and __CAT__ too!

▲0c3ca83 27 minutes ago | parent [-]

Doing non-trivial preprocessing is a mistake. It's probably a good idea to pretend that the only preprocessing directive is #include. With constexpr, even #define is obsolescent.