Class Templates
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.