Contenu du cours
Modèles C++
Modèles C++
Conventions de Nommage
Bonnes et mauvaises dénominations
Tout comme les variables, vous pouvez nommer les paramètres de modèle comme vous le souhaitez. Cependant, respecter les conventions de nommage peut grandement améliorer la lisibilité et la maintenabilité du code. Voici quelques bonnes et mauvaises pratiques à considérer.
main
template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }
Vous vous demandez peut-être pourquoi T
est considéré comme un meilleur choix de nom que Type
, même si ce dernier semble plus clair. La raison est simple : T
est une convention largement acceptée qui signifie Type. Il indique immédiatement que le paramètre de modèle représente un type, ce qui est familier pour la plupart des développeurs. Il est également courant d'utiliser U
ou V
si T
a déjà été utilisé.
Noms descriptifs
Lorsque vous avez plusieurs paramètres de modèle et que leur objectif n'est pas immédiatement évident, il est bon d'utiliser des noms descriptifs préfixés par T
.
main
template<typename TKey, typename TValue> void map() { // Function implementation }
Si vous consultez la documentation de certains modèles, vous remarquerez peut-être que certains développeurs ajoutent un trait de soulignement (_
) avant le paramètre de type pour le rendre plus distinct. Vous pouvez également adopter cette pratique. Cependant, l'aspect le plus important est de maintenir la cohérence dans l'ensemble de votre code. Choisissez un style de nommage que vous préférez et respectez-le.
Class et typename
Les deux class
et typename
sont utilisés dans les déclarations de templates. Ils sont interchangeables dans ce contexte.
main
template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }
Historiquement, le mot-clé class
était la seule option disponible pour définir les paramètres de template. En conséquence, vous pouvez rencontrer ce mot-clé dans du code plus ancien. Cependant, lors de la création de templates, le mot-clé typename
est souvent préféré pour sa clarté, donc nous l'utiliserons.
Merci pour vos commentaires !