Partilhar via


typename

Diz para o compilador que um identificador desconhecido é um tipo.

typename identifier;

Comentários

Use essa palavra-chave apenas em definições de modelo.

Essa palavra-chave deverá ser usada se o nome for dependente de um nome qualificado em um argumento de modelo; será opcional se o nome qualificado não for dependente. Para obter 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. 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 class em listas de parâmetros do modelo. Por exemplo, as seguintes instruções são idênticas:

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()
{
}

Consulte também

Referência

Palavras-chave C++

Outros recursos

Modelos