Maison > développement back-end > C++ > Pouvez-vous spécifier explicitement les paramètres de modèle dans les définitions de constructeur ?

Pouvez-vous spécifier explicitement les paramètres de modèle dans les définitions de constructeur ?

DDD
Libérer: 2024-11-29 16:42:12
original
659 Les gens l'ont consulté

Can You Explicitly Specify Template Parameters in Constructor Definitions?

La spécification explicite des paramètres de modèle dans la définition du constructeur peut-elle être obtenue ?

Malgré la possibilité de créer des modèles de constructeur au sein d'une classe, le processus de compilation déduit généralement les paramètres du modèle à partir des arguments. fourni. Cependant, un doute surgit s'il existe une syntaxe permettant la spécification explicite des paramètres de modèle dans de tels constructeurs.

Considérons la structure suivante comme exemple :

struct A {
  template<typename T>
  A() {}
};
Copier après la connexion

La question se pose : existe-t-il une méthode pour instancier cette structure ou définir explicitement les paramètres de modèle de son constructeur ?

En pratique, des scénarios peuvent survenir dans lesquels le compilateur ne parvient pas à identifier le constructeur modèle correct, ce qui conduit à d'éventuelles difficultés. La spécification explicite des paramètres du modèle pourrait améliorer le rapport d'erreurs ou même résoudre le problème.

Réponse :

Malheureusement, la norme C 03 offre une réponse définitive :

"Étant donné que les modèles de fonctions membres de conversion et les modèles de fonctions membres de constructeur sont appelés sans utiliser de nom de fonction, il n'existe aucun moyen de fournir une liste d'arguments de modèle explicite pour ces fonctions. modèles." (§14.5.2/5)

Essentiellement, la spécification explicite des paramètres de modèle dans les définitions du constructeur n'est pas prise en charge par la norme C 03.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal