Que sont les guides de déduction de modèles dans C 17 ?
C 17 a introduit les guides de déduction de modèles en tant que mécanisme permettant de dériver automatiquement les arguments de modèle lors de l'instanciation d'un modèle objets de classe. Ils facilitent la déduction des paramètres de modèle en fonction des arguments du constructeur, traitant des scénarios dans lesquels la déduction des arguments de modèle traditionnelle échoue.
Pourquoi et quand utiliser les guides de déduction de modèles ?
Modèle des guides de déduction sont nécessaires lorsque le paramètre de modèle ne peut pas être directement déduit du type d'un argument de constructeur. Cela se produit généralement lorsque le type de paramètre dépend de traits ou de transformations appliqués au type d'argument.
Comment déclarer les guides de déduction de modèles ?
Les guides de déduction de modèles sont déclarés dans le de la même manière que les constructeurs, sauf qu'ils sont suivis d'une flèche (->) et d'une spécialisation de modèle. Le côté gauche de la flèche représente le modèle de signature du constructeur qui déclenche la déduction, tandis que le côté droit spécifie la spécialisation du modèle déduit :
template<typename Iterator> void func(Iterator first, Iterator last) { vector v(first, last); }
Dans l'exemple ci-dessus, le modèle vectoriel a un guide de déduction qui permet au compilateur pour déduire T en fonction des traits de l'itérateur :
template<typename Iterator> vector(Iterator b, Iterator e) -> vector<typename std::iterator_traits<Iterator>::value_type>;
Les guides de déduction de modèles fournissent un moyen pratique et concis de gérer la déduction d'arguments de modèles complexes, en simplifiant code et amélioration de la sécurité des types.
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!