Syntaxe du mot-clé "typename"
Le mot-clé "typename" est utilisé en C pour faire référence à un nom imbriqué qui est un nom dépendant , ce qui signifie qu'il est imbriqué dans une instance de modèle avec un paramètre inconnu. Ce mot-clé spécifie explicitement que le nom représente un type, en particulier lorsque l'entité déduite (valeur, type ou modèle) est ambiguë.
Utilisation de « typename » dans les noms imbriqués
Considérez l'extrait de code suivant :
template<class K> class C { struct P {}; vector<P> vec; void f(); }; template<class K> void C<K>::f() { typename vector<P>::iterator p = vec.begin(); }
Ici, le mot-clé "typename" est nécessaire pour déclarer p comme un type, à savoir un itérateur pour un vecteur de P structures. Sans "typename", le compilateur interpréterait le vecteur de séquence
::iterator comme une expression qui représente une valeur ou une fonction, ce qui serait incorrect.
Cas supplémentaires nécessitant "typename"
Outre les noms imbriqués, le mot-clé "typename" est également requis dans ce qui suit scénarios :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!