•When defining an object, clients must specify the data types and values used for substitution with the type and non-type dependencies.
•For example, if a class template has one type dependency and one non-type:
•class_name <data_types, values> object;
•Only instances used by the client cause code to be generated for any particular compilation.
•If the identifiers representing the types expected match exactly and if the non-type template arguments have the identical values as a previous
instantiation, the
template class is not re-instantiated.