Laid out mostly as a set of interoperable classes, there's also a templating framework (which is the basis of it all) to create your own templated types.
4) #macro & #define are typically only usable where a simple text substitution would work. #macro & #define are not well suited as-is to extend the language itself since preprocessor has very limited capability as far as a macro language goes. Developing additional token processing operators or macro-text processing functions is a possibility, but there are other issues.
You would be surprised. I would like to see a more advanced preprocessor implemented, though. There were some things that were really challenging to implement and required some serious thought to make them work (making templating work within namespaces was one of them). Anyway, really nice work with 1.07.1 guys! (I'm using the Gcc 8 toolchain); no serious hiccups to report here.
I'm developing this along a commercial app, but this code is MIT so there aren't any troubles in posting this here. Bugs? Comments? Suggestions? Report, please.