typename
Em definições de modelo, typename
fornece uma dica para o compilador de que um identificador desconhecido é um tipo. Em listas de parâmetros de modelo, ele é usado para especificar um parâmetro de tipo.
Sintaxe
typename
identifier
;
Comentários
A typename
palavra-chave deve ser usada se um nome em uma definição de modelo for um nome qualificado que depende de um argumento de modelo, é opcional se o nome qualificado não for dependente. Para mais informações, consulte Resolução de modelos e nomes.
typename
pode ser usado por qualquer tipo em qualquer lugar em uma declaração ou definição de modelo. Ele não é permitido na lista de classes base, a menos que como um argumento de modelo para uma classe base de modelo.
template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType> // typename OK.
{};
A palavra-chave typename
também pode ser usada no lugar de class
em listas de parâmetros do modelo. Por exemplo, as instruções a seguir são semanticamente equivalentes:
template<class T1, class T2>...
template<typename T1, typename T2>...
Exemplo
// typename.cpp
template<class T> class X
{
typename T::Y m_y; // treat Y as a type
};
int main()
{
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de