Maison >développement back-end >C++ >Comment le « modèle » de C 17 améliore-t-il l'utilisation des paramètres du modèle ?
Libérer le potentiel de Template Auto : avantages en C 17
L'introduction du modèle
Extension naturelle d'Auto pour l'instanciation de modèle
auto a été largement adopté pour les déclarations de variables, offrant une déduction de type basée sur la valeur attribuée. L'extension de auto aux paramètres de modèle simplifie encore l'instanciation du modèle en déterminant automatiquement le type du paramètre à partir de sa valeur. Cela élimine le besoin de spécification de type explicite, offrant une syntaxe plus concise et intuitive.
Déduction de type pratique et explicite
L'utilisation de auto dans les paramètres du modèle permet la déduction de type même pour les paramètres de modèle non-type. Par exemple, auparavant, le modèle de constante suivant nécessitait des déclarations de type verbeuses :
template <typename Type, Type value> constexpr Type constant = value;
Avec le modèle
template <auto value> constexpr auto constant = value;
Le compilateur déduit désormais automatiquement le type à partir de la valeur attribuée à value, rendant le code plus lisible et moins sujet aux erreurs.
Amélioré Gestion des modèles variadiques
modèle
template <auto ... vs> struct HeterogenousValueList {}; using MyList1 = HeterogenousValueList<42, 'X', 13u>;
De même, des listes de valeurs homogènes peuvent être écrites de manière succincte :
template <auto v0, decltype(v0) ... vs> struct HomogenousValueList {}; using MyList2 = HomogenousValueList<1, 2, 3>;
Conclusion
modèle
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!