cpp/language/Zero-overhead principle

The zero-overhead principle is a C++ design principle that states:


 * 1) You don't pay for what you don't use.
 * 2) What you do use is just as efficient as what you could reasonably write by hand.

In general, this means that no feature should be added to C++ that would impose any overhead, whether in time or space, greater than a programmer would introduce without using the feature.

The only two features in the language that do not follow the zero-overhead principle are and, and are why most compilers include a switch to turn them off.