Uber Flexible
Newer languages like Java lack a preprocessor like C has. The #ifdef AAP
is replaced by if(aap)
with aap
declared final
. However, cpp
has more to offer than conditional code. A preprocessor is a domain specific language for symbol manipulation that can also offer meta programming and language alterations. The __LINE__
directive is an example of the former. Below an example of the latter:
To fully use a preprocessor, a coder needs to be uber-flexible. Only a few are. Hence the frustration with languages like M4 or the expansion delay effect of &&
in the SAS macro language. Some preprocessors were added out of necessity. Just imagine writing 10 KLOC of assembler without using a preprocessor. To quote Al Bundy, I’d rather bait a crocodile with my manhood.