Recursive Macros in C++20: The Dark Art That Actually Works

How __VA_OPT__, deferred expansion, and a loophole in the preprocessor let you iterate over tokens at compile time