The Preprocessor Is Not Evil
There are still times the preprocessor is the best tool for the job
#define … #ifdef … #endif is good for selectively enabling or disabling code, even from the compiler’s command line
Works with tools such as autoconf
More complex uses of the preprocessor don’t have C++ versions