Comprendre la distinction entre "
En C, les modèles permettent aux programmeurs de créer du code générique qui fonctionne sur différents types. Lors de la définition de modèles, on peut rencontrer deux mots-clés : "
Interchangeabilité dans les contextes de base
Dans la plupart des cas, "
template <typename T> class Foo {...}
est équivalent à :
template <class T> class Foo {...}
Les deux déclarations définissent une classe générique "Foo" qui opère sur n'importe quel type "T".
Cas spécifiques nécessitant une distinction
Cependant, il existe certains cas où "
template <typename param_t> class Foo { typedef typename param_t::baz sub_t; }
template <template <typename, typename> class Container, typename Type> class Example {...}
où "Container" est un modèle qui prend deux paramètres de type.
template class Foo<int>;
la "classe" Le mot-clé est toujours utilisé à la place de "typename".
En résumé, tandis que "
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!