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