Maison > développement back-end > C++ > le corps du texte

Comment déclarer une structure basée sur un modèle comme ami en C ?

DDD
Libérer: 2024-11-06 15:49:02
original
283 Les gens l'ont consulté

How to Declare a Templated Struct as a Friend in C  ?

Déclaration de structure/classe modèle en tant qu'ami

En programmation C, on peut rencontrer des scénarios dans lesquels déclarer une structure ou une classe modèle en tant qu'ami est voulu. Cependant, lorsque vous essayez l'approche courante ci-dessous, certains compilateurs, tels que Visual C 8 (VC8), génèrent des erreurs :

template <typename T>
struct foo
{
    template <typename S>
    friend struct foo<S>;
};
Copier après la connexion

La raison derrière cette erreur est l'incapacité du compilateur à gérer plusieurs listes de paramètres de modèle dans un une seule ligne. Pour surmonter cet obstacle, une syntaxe alternative est introduite :

template <typename> friend class foo;
Copier après la connexion

En spécifiant une liste de paramètres de modèle vide, la déclaration d'ami s'applique désormais à toutes les instanciations potentielles de la structure ou de la classe basée sur un modèle. Cependant, il convient de noter que cette approche rend tous les modèles amis les uns avec les autres. Par exemple, foo et foo seraient tous les deux amis, malgré votre intention initiale de déclarer les instances de foo comme amis à foo.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!