Почему опция использования атрибутов в новых проектах ATL была удалена из Visual Studio 2008? - PullRequest
3 голосов
/ 08 сентября 2008

Это текст из комментария MSDN: «Согласно книге ATL Internals (2ed) использование атрибутов не рекомендуется и не должно использоваться в новых проектах ATL».

Но ПОЧЕМУ? !!

Ответы [ 2 ]

4 голосов
/ 09 сентября 2008

В ATL эти атрибуты были уловкой компилятора. Они не были основной частью платформы, как атрибуты в C #. Они также были более запутанными для отладки, чем макросы, и метод вывода сгенерированного кода атрибута был хлопотным.

Я подозреваю, что другой проблемой, вероятно, была совместимость компилятора C ++ и соблюдение стандартов. Атрибуты не создавали более красивый код C ++, и, возможно, этот синтаксис может быть использован в будущей версии настоящего стандарта C ++.

1 голос
/ 10 августа 2009

Приложение D книги относится к этому.

Атрибут ATL требует расширения компилятора, и встречающиеся проблемы включают

  • отладка либо кода, сгенерированного атрибутом, либо взаимодействия между атрибутом и вашим кодом
  • нет контроля над сгенерированным кодом
  • ошибок, особенно вокруг точек подключения
...