Using m4 with C

In one of my recent projects I've found the need for something more powerful than the vanilla C preprocessor. Specifically, I need to generate a combinatorially exploding amount of code at compile time in a way that doesn't burden maintainance or complicate the build system. I've done some research and…