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

StackOverflow https://stackoverflow.com/questions/50310

Вопрос

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

Но ПОЧЕМУ?!!

Это было полезно?

Решение

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

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

Другие советы

Об этом говорится в приложении D к книге.

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

  • отладка либо кода, сгенерированного атрибутом, либо взаимодействия между атрибутом и вашим кодом
  • нет контроля над сгенерированным кодом
  • ошибки, особенно вокруг точек подключения
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top