11

When are macros idiomatic and when should they be avoided?
Macros are idiomatic only when there is no alternative to their use. Examples are include guards (they are the only portable form), embedded domain-specific languages, special compiler support not available through other language fea...