For every complex problem, there is an answer that is clear, simple, and wrong.
– H. L. Mencken
One of the great strengths of templates is that they are an extremely flexible mechanism for composition of code. To produce impressive code quality, a compiler combines code (information) from
• the template definition and its lexical environment,
• the template arguments and their lexical environment, and