typename
Dans les définitions de modèle, typename
fournit un indicateur au compilateur qu’un identificateur inconnu est un type. Dans les listes de paramètres de modèle, il est utilisé pour spécifier un paramètre de type.
Syntaxe
typename
identifier
;
Notes
La typename
mot clé doit être utilisée si un nom dans une définition de modèle est un nom qualifié dépendant d’un argument de modèle ; 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 n’importe quel type n’importe où dans une déclaration ou une définition de modèle. Elle n’est pas autorisée dans la liste des classes de base, sauf en tant qu’argument de modèle pour une classe de base de 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 typename
mot clé peut également être utilisé à la place des listes de paramètres de class
modèle. Par exemple, les instructions suivantes sont sémantiquement équivalentes :
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour