Surmonter les paramètres de modèle redondants dans les constructeurs de modèles de classe en C 20
En C 20, la déclaration des constructeurs de modèles de classe a subi une modification subtile mais changement impactant. Auparavant, les constructeurs de modèles de classe pouvaient éventuellement inclure la liste de paramètres de modèle dans leur déclarateur, comme le montre l'extrait de code suivant :
1 2 3 4 |
|
Cette pratique, cependant, est désormais obsolète en C 20. Le code ci-dessus entraîne maintenant une erreur du compilateur dans le tronc gcc avec -std=c 20. Cependant, il serait toujours compilé dans le tronc clang avec le même standard.
Justification du changement
La suppression des paramètres de modèle redondants dans les constructeurs de modèles de classe résout une source potentielle d'erreurs. En exigeant l'utilisation explicite du nom de classe injecté, l'intention simple est préservée lors de la déclaration des constructeurs dans les modèles de classe.
Effet sur le code existant
Ce changement peut avoir implications pour les bases de code existantes qui s'appuient sur la syntaxe précédemment valide. Le code C 2017 valide comme l'exemple ci-dessus peut ne plus être compilé selon la norme C 20.
Résolution du code concerné
Pour tenir compte de ce changement, la syntaxe alternative suivante peut être utilisé :
1 2 3 4 |
|
Alternativement, si des arguments de modèle spécifiques sont requis, la surcharge du constructeur peut être employé :
1 2 3 4 5 |
|
En adhérant à ces directives de syntaxe, les bases de code peuvent maintenir la compatibilité avec la norme C 20 mise à jour.
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!