Question

This is the text from MSDN comment: "According to the book ATL Internals (2ed) the use of attributes is deprecated and should not be used in new ATL projects."

But WHY?!!

Was it helpful?

Solution

In ATL these attributes were a compiler trick. They were not a core part of the platform like attributes in C#. They were also more confusing to debug than macros's and the method of dumping generated attribute code was a hassle.

I suspect another issue is likely to have been C++ compiler compatibility and standards-adherence. Attributes didn't make for more beautiful C++ code, and perhaps this syntax may be used in a future version of a real C++ standard.

OTHER TIPS

Appendix D of the book goes into this.

Attributed ATL requires compiler extensions, and the problems encountered include

  • debugging either code generated by the attribute or the interaction between the attribute and your code
  • no control over the code generated
  • bugs, especially around connection points
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top