これは、MSDN のコメントからのテキストです。
しかし、なぜ?!!
ATL では、これらの属性はコンパイラのトリックでした。それらは、C# の属性のようなプラットフォームのコア部分ではありませんでした。また、マクロよりもデバッグが難しく、生成された属性コードをダンプする方法が面倒でした。
別の問題は、C++ コンパイラの互換性と標準への準拠である可能性が高いと思われます。属性は、より美しい C++ コードにはなりませんでした。おそらく、この構文は、実際の C++ 標準の将来のバージョンで使用される可能性があります。
本の付録 D にこれが記載されています。
属性付き ATL にはコンパイラの拡張機能が必要であり、発生する問題には次のようなものがあります。