Por que a opção de usar atributos em novos projetos ATL foi removida do Visual Studio 2008?
-
09-06-2019 - |
Pergunta
Este é o texto do comentário do MSDN:“De acordo com o livro ATL Internals (2ed) o uso de atributos está obsoleto e não deve ser utilizado em novos projetos ATL.”
Mas por que?!!
Solução
Na ATL esses atributos eram um truque do compilador.Eles não eram uma parte central da plataforma como os atributos em C#.Eles também eram mais confusos para depurar do que macros e o método de descarregar o código de atributos gerado era um incômodo.
Suspeito que outro problema provavelmente tenha sido a compatibilidade do compilador C++ e a adesão aos padrões.Os atributos não tornavam o código C++ mais bonito, e talvez essa sintaxe possa ser usada em uma versão futura de um padrão C++ real.
Outras dicas
O Apêndice D do livro aborda isso.
ATL atribuída requer extensões de compilador e os problemas encontrados incluem
- depurar o código gerado pelo atributo ou a interação entre o atributo e seu código
- nenhum controle sobre o código gerado
- bugs, especialmente em torno de pontos de conexão