Maison > développement back-end > C++ > Pourquoi la spécialisation partielle d'un membre de fonction de modèle entraîne-t-elle une « utilisation non valide d'un type incomplet » ?

Pourquoi la spécialisation partielle d'un membre de fonction de modèle entraîne-t-elle une « utilisation non valide d'un type incomplet » ?

Mary-Kate Olsen
Libérer: 2024-12-03 02:17:09
original
904 Les gens l'ont consulté

Why Does Partial Specialization of a Template Function Member Cause

Erreur « Utilisation non valide d'un type incomplet » dans la spécialisation partielle du modèle

Lors de la tentative de création d'une spécialisation partielle d'une fonction de modèle avec la syntaxe :

template <typename T>
void foo<int, T>::bar() {
}
Copier après la connexion

vous pouvez recevoir l'erreur "utilisation non valide d'un type incomplet 'struct foo'." Cela se produit car C vous oblige à spécialiser partiellement l'ensemble du modèle lors de la spécialisation d'une fonction membre.

Pour résoudre ce problème, spécifiez la signature complète du modèle lors de la spécialisation partielle de la classe :

template 
struct foo {
   void bar();
};

template <>
struct foo {
   void bar() {
   }
};

Alternativement, vous pouvez utiliser une solution de contournement telle que la création d'une structure de modèle imbriquée ou la dérivation d'un autre modèle partiellement spécialisé.

Remarque : Ceci s'applique seulement à une spécialisation partielle des fonctions des membres. La spécialisation complète d'une fonction de modèle ne nécessite pas de spécialiser l'intégralité du 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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal