<p>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."</p>

<p>But WHY?!! </p>

[{'answer_id': 51034, 'author': 'Brian Lyttle', 'author_id': 636, 'author_profile': 'https://Stackoverflow.com/users/636', 'pm_score': 3, 'selected': True, 'text': "<p>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.</p>\n\n<p>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.</p>\n"}, {'answer_id': 1254269, 'author': 'richard.albury', 'author_id': 31861, 'author_profile': 'https://Stackoverflow.com/users/31861', 'pm_score': 1, 'selected': False, 'text': '<p>Appendix D of the book goes into this.</p>\n\n<p>Attributed ATL requires compiler extensions, and the problems encountered include</p>\n\n<ul>\n<li>debugging either code generated by the attribute or the interaction between the attribute and your code</li>\n<li>no control over the code generated</li>\n<li>bugs, especially around connection points</li>\n</ul>\n'}]
['https://Stackoverflow.com/questions/50310', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2279145/']