C++ supports the typename keyword. It may be used in place of the keyword class in a template declaration or to specify that a name is a type name rather than an object name.