The preprocessor: Bjarne Stroustrup has been willing to get rid of it for a long time. C++20 modules are a step in this direction. However - as pointed out by John Lakos - you still need macros to build zero-cost logging facilities.
Something like:
void MyDebugLog(text) {
if (<constepxr check if logging enabled>) {
// actually log...
}
}