keyword typename

The typename keyword is used in template definitions. It can be used (inter-changably with class in template parameter lists, it can also be used to indicate that the following symbol should be treated as a type, rather than as a member function or static member variable.

See also: template, class, Template metaprogramming