typename
C++ Specific —>
typenameidentifier**;**
Use this keyword only in template definitions. This keyword tells the compiler that an unknown identifier is a type. For example:
template<class T> class X {
typename T::Y; // treat Y as a type
Y m_y;
};
This keyword can also be used in place of class in template parameter lists. For example, the following statements are identical:
template<class T1, class T2>...
template<typename T1, typename T2>...
END C++ Specific