/ / utilisant les attributs C ++ 11 - c ++, c ++ 11, attributs

Utilisation d'attributs C ++ 11 - c ++, c ++ 11, attributs

Pourriez-vous s'il vous plaît expliquer comment obtenir des informationsà partir d'attributs en C ++? Par exemple, je veux écrire une liaison C ++ vers python. Pour cela, je dois annoter toutes les méthodes de la classe avec des informations de liaison spécifiques. Maintenant, je dois générer du code par attributs. Ou un autre exemple, mappez la classe à l'entité db. Ou les attributs C ++ 11 ne sont pas les mêmes que dans les annotations Java ou C #?

Réponses:

18 pour la réponse № 1

Attributs (un nouvelle fonctionnalité C ++ 11) ne sont qu'une syntaxe normalisée pour le compilateurextensions. Pour faire ce que vous voulez, vous aurez besoin d’un compilateur avec les extensions appropriées. Jusqu'ici, je ne pense pas qu'aucun compilateur implémente même la syntaxe d'attribut, encore moins d'attributs spécifiques pour les liaisons Python.

Parce qu'ils "sont destinés aux extensions du compilateur,Il n’existe pas de méthode standard pour créer vos propres attributs, comme avec les annotations Java ou les attributs C #. Bien sûr, un compilateur pourrait fournir cette possibilité sous forme d’extension ...;)


3 pour la réponse № 2

Une mise à jour avec des informations plus récentes:

GCC now (à partir de la version 4.8) implémente les attributs C ++ 11 comme syntaxe alternative pour __attribute__((XXX)).

Vous pouvez également utiliser le mécanisme du plug-in GCC pour définir de nouveaux attributs - voir https://gcc.gnu.org/onlinedocs/gccint/Plugins.html.

Vous pouvez aussi faire cela en python en utilisant le plugin gcc-python - voir https://gcc-python-plugin.readthedocs.org/en/latest/attributes.html.