Pourquoi l'option permettant d'utiliser des attributs dans les nouveaux projets ATL a-t-elle été supprimée de Visual Studio 2008 ?
-
09-06-2019 - |
Question
Voici le texte du commentaire MSDN :"Selon le livre ATL Internals (2ed), l'utilisation des attributs est obsolète et ne doit pas être utilisée dans les nouveaux projets ATL."
Mais pourquoi?!!
La solution
Dans ATL, ces attributs étaient une astuce du compilateur.Ils ne constituaient pas un élément essentiel de la plateforme comme les attributs en C#.Ils étaient également plus déroutants à déboguer que les macros et la méthode de vidage du code d'attribut généré était compliquée.
Je soupçonne qu'un autre problème est probablement la compatibilité du compilateur C++ et le respect des normes.Les attributs ne permettent pas d'obtenir un code C++ plus beau, et peut-être que cette syntaxe pourra être utilisée dans une future version d'un véritable standard C++.
Autres conseils
L'annexe D du livre aborde ce sujet.
L'ATL attribué nécessite des extensions du compilateur et les problèmes rencontrés incluent
- déboguer soit le code généré par l'attribut, soit l'interaction entre l'attribut et votre code
- aucun contrôle sur le code généré
- bugs, notamment autour des points de connexion