Class Templates
The template formal argument list can contain three
different kinds of arguments:
identifiers that represent type dependencies,
identifiers that represent values, and i
dentifiers that represent type dependencies based on a
template class.
A type dependency allows the identifier listed to be
substituted for the data type specified by the client at
instantiation time. More than one identifier can be listed,
each prefaced by the keyword class or typename to
indicate that this is a type dependency.