TITLE: The evils of macros [ Material taken from "C++ Programming Language", Version 2, by Bjarne Stroustrup, section 4.7 ] [Macros] are very important in C but have far fewer uses in C++. The first rule is: Don't use them if you don't have to. It has been observed that almost every macro demonstrates a flaw in the programming language, in the program, or in the programmer. Because they rearrange the program text before the compiler proper sees it, macros are also a major problem for programming tools, so when you use macros you should expect inferior service from tools such as debuggers, cross reference tools, and profiles. [...] Using macros, you design your own private language; it will most likely be incomprehensible to others. The const, inline and template mechanisms are intended as alternatives to many traditional uses of preprocessor constructs.