Share via


typename

Nelle definizioni di modello fornisce typename un suggerimento al compilatore che un identificatore sconosciuto è un tipo. Negli elenchi di parametri del modello viene usato per specificare un parametro di tipo.

Sintassi

typename identifier;

Osservazioni:

La typename parola chiave deve essere usata se un nome in una definizione di modello è un nome completo che dipende da un argomento di modello. È facoltativo se il nome completo non è dipendente. Per altre informazioni, vedere Modelli e risoluzione dei nomi.

typename può essere usato da qualsiasi tipo in qualsiasi punto di una dichiarazione o di una definizione di modello. Non è consentito nell'elenco delle classi di base, a meno che non sia un argomento modello per una classe di base del modello.

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

La typename parola chiave può essere usata anche al posto di negli elenchi di parametri del class modello. Ad esempio, le istruzioni seguenti sono semanticamente equivalenti:

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

Esempio

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

int main()
{
}

Vedi anche

Modelli
Parole chiave