Share via


typename

Indica al compilador que un identificador desconocido es un tipo.

typename identifier;

Comentarios

Utilice esta palabra clave sólo en definiciones de plantilla.

Esta palabra clave debe usar si el nombre es un dependiente del nombre completo en un argumento de plantilla; es opcional si el nombre completo no depende.Para obtener más información, vea plantillas y resolución de nombres.

typename se puede utilizar para cualquier tipo en cualquier parte en una declaración o definición de plantilla.No se permite en la lista de clases base, a menos que como argumento de plantilla a una clase base de la plantilla.

template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType>  // typename OK.
{};

La palabra clave de typename también se puede usar en lugar de clase en listas de parámetros de plantilla.Por ejemplo, las siguientes instrucciones son idénticas:

template<class T1, class T2>...
template<typename T1, typename T2>...

Ejemplo

// typename.cpp
template<class T> class X
{
   typename T::Y m_y;   // treat Y as a type
};

int main()
{
}

Vea también

Referencia

Palabras clave de C++

Otros recursos

Plantillas