Validity of a non-template code is more or less clear to everyone - a compiler checks the syntax, types, and rules. The compiler has everything it needs to perform these checks.
But when the compiler has to compile a templated code (for example STL, or Boost) it does't have enough information. While the templated code isn't instantiated the compiler doesn't know what operations mean, whether or not they are defined for the types that will be used to instantiate this templated code, etc. Templated code can't be compiled untill instantiated.
Is there such a thing as a validity of a templated code? Would it require us to compile every instantiation of a templated code to verify its validity?