Perché l'opzione per utilizzare gli attributi nei nuovi progetti ATL è stata rimossa da Visual Studio 2008?
-
09-06-2019 - |
Domanda
Questo è il testo del commento MSDN:"Secondo il libro ATL Internals (2ed) l'uso degli attributi è deprecato e non dovrebbe essere utilizzato nei nuovi progetti ATL."
Ma perché?!!
Soluzione
In ATL questi attributi erano un trucco del compilatore.Non erano una parte fondamentale della piattaforma come gli attributi in C#.Inoltre erano più confusi da eseguire il debug rispetto alle macro e il metodo di dumping del codice degli attributi generato era una seccatura.
Sospetto che un altro problema sia probabilmente la compatibilità del compilatore C++ e l'aderenza agli standard.Gli attributi non hanno reso il codice C++ più bello e forse questa sintassi potrebbe essere utilizzata in una versione futura di un vero standard C++.
Altri suggerimenti
L'Appendice D del libro approfondisce questo argomento.
L'ATL attribuito richiede estensioni del compilatore e i problemi riscontrati includono
- eseguire il debug del codice generato dall'attributo o dell'interazione tra l'attributo e il codice
- nessun controllo sul codice generato
- bug, soprattutto intorno ai punti di connessione