self en c: l'implémentation autonome
Le mot-clé, largement utilisé dans des langues comme Php, pose une défi en C en raison de l'absence d'un mécanisme équivalent. Bien qu'une implémentation spécifique à la classe utilisant des types de types imbriqués soit simple, elle nécessite la duplication et les risques introduisant des bogues subtils. Cet article explore une solution élégante à l'aide de Decltype et des modèles pour réaliser une autonomisation autonome.
Déclarer de soi avec DeclType
La tentative initiale d'introduire un auto à l'aide de DeclType échoue car elle tente d'accès à celle-ci en dehors d'une instance. Pour résoudre ce problème, nous devons résumer la déclaration d'auto dans un modèle:
templateclass SelfBase : public Ts... { protected: typedef X self; };
Ce modèle sert de classe de base pour les types qui peuvent accéder à soi. X
with_self_derived (x, ...): ajoute auto-base
Exemples
Conclusion
En tirant parti de Decltype et des modèles, il est possible d'implémenter un type de membre autonome autonome en c. Cette approche permet l'utilisation de soi dans les classes sans risque de bugs silencieux en raison de la redéfinition des classes défectueuses. Les macros de commodité fournies rendent l'implémentation simple et flexible, permettant un héritage de classe de base multiple et différentes combinaisons de classes de base auto et régulières.Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3