Maison > développement back-end > C++ > SFINAE peut-il être utilisé pour détecter les fonctions membres héritées en C ?

SFINAE peut-il être utilisé pour détecter les fonctions membres héritées en C ?

Linda Hamilton
Libérer: 2024-11-05 13:37:02
original
290 Les gens l'ont consulté

Can SFINAE Be Used to Detect Inherited Member Functions in C  ?

SFINAE pour détecter les fonctions membres de la classe de base

En C, SFINAE (Substitution Failure Is Not An Error) est couramment utilisé pour vérifier le présence d’une fonction membre spécifique dans une classe. Cependant, la détection des fonctions membres héritées à l'aide de SFINAE nécessite une approche plus complexe.

Le code fourni dans la question tente d'exploiter SFINAE à cette fin, mais ne tient pas compte de l'héritage. Pour remédier à cette limitation, la solution présentée ici utilise une stratégie différente.

Inspirée de la discussion dans un fil de discussion d'utilisateurs de Boost, la classe de modèle has_foo est définie. Il exploite un mécanisme de vérification de type pour différencier les fonctions membres directes et héritées. La fonction deduce tente de déduire un type qui correspond à la signature attendue de la fonction membre. Si la déduction réussit (c'est-à-dire que la taille du type déduit est oui), l'indicateur de résultat est défini sur true, indiquant la présence de la fonction membre héritée.

Application de cette solution aux exemples de classes, A, B, et C, les résultats démontrent que has_foo reconnaît correctement les fonctions membres héritées dans B.

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