Partager via


typename

Indique au compilateur qu'un identificateur inconnu est un type.

typename identifier;

Notes

Utilisez ce mot clé uniquement dans les définitions de modèle.

Ce mot clé doit être utilisée si le nom est qualifié nom d'un argument template ; il est facultatif si le nom qualifié n'est pas dépendant.Pour plus d'informations, consultez modèles et résolution de noms.

typename peut être utilisé par tout type n'importe où dans une déclaration ou une définition de modèle.Il ne lui permet pas dans la liste de classes de base, à moins que comme argument template à une classe de base d'un modèle.

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

Le mot clé de typename peut également être utilisé à la place de classe dans les listes de paramètres de modèle.Par exemple, les instructions suivantes sont les mêmes :

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

Exemple

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

int main()
{
}

Voir aussi

Référence

Mots clés C++

Autres ressources

Modèles