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