typename
En las definiciones de plantilla, typename
proporciona una sugerencia al compilador de que un identificador desconocido es un tipo. En las listas de parámetros de plantilla, se usa para especificar un parámetro de tipo.
Sintaxis
typename
identifier
;
Comentarios
La typename
palabra clave debe usarse si un nombre de una definición de plantilla es un nombre completo que depende de un argumento de plantilla; es opcional si el nombre completo no depende. Para obtener más información, consulte Plantillas y resolución de nombres.
typename
se puede usar en cualquier tipo y en cualquier lugar de una declaración o definición de plantilla. No se permite en la lista de clases base, a menos que sea un argumento de plantilla para una clase base de 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 typename
también se puede usar en lugar de class
en las listas de parámetros de plantilla. Por ejemplo, las instrucciones siguientes son semánticamente equivalentes:
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()
{
}
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de