With consteval (and its cousins), std::source_location and modules you could pretty much compile C++ without the preprocessor. Hooray!
James Dennett and Geoff Romer. P0927R2: Towards A (Lazy) Forwarding Mechanism for C++. ISO/IEC C++ Standards Committee Paper. 2018. url: https://wg21.link/p0927r2.