Diving further into that code, I find they took my advice from a few years ago to use classes to manage their C++ code...
... but didn't use any subclasses. Instead, they have FooHelper.h, which #ifdefs the public class methods for each Foo-class variant to macros like FOO_INIT, FOO_SETUP, FOO_RUNFOO, FOO_SET_PARAM, and so on for each of a number of classes. There's also a FooHelper.cpp, which implements the parts of that whackyness which don't fit neatly into macros.