posts - 644, comments - 1997, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Managed C++: the revolution

La sessione di Scott Currie, PM di VC++, presenta il nuovo modo di scrivere codice managed con C++. La sintassi a a cui eravamo abituati è stata rivoluzionata e semplificata. Il vecchio managed C++ è solo un ricordo.

Viene introdotta una nuova sintassi che prevede di usare una nuova categoria di puntatori (che usano il simbolo ^) che sono verificabili dal compilatore C++. Altre parole chiave suona strane ma semplifica non poco la leggibilità del vecchio conodice managed: non ho visto neanche un __gc :-)

La gestione di assembly misti con codice nativo e managed è oggetto della parte centrale della sessione. I problemi già noti di mixare codice managed/unmanaged che vengono a galla quando sono richieste le routine di inizializzazione del CRT vengono risolte con l'attibuto DllImport e l'uso di PInvoke. Di default infatti il compilatore C++ implementa l'interoperabilità con IJW (It Just Works) di cui vengono mostrati alcuni esempi.

Il bello è che si può mixare codice nativo anche scritto in assembler (_asm) per mantenere quelle ottimizzazioni fortemente dipendenti dalla CPU. Può suonare antiquato ma esistono là fuori molte applicazioni ottimizzate che non si possono buttare via e con Whidbey abbiamo modo di portare il codice più 'noioso' verso il mondo managed, con tutti i vantaggi che tutti conosciamo.

Perchè tutto questo? La migrazione graduale a WinFX naturalmente. Il target è quello di arrivare piano piano al solo codice managed per tutti i vantaggi che ne derivano e C++ non può certo rimanere isolato nel mondo unmanaged.

Lo ripeterò tutti i giorni: rimbocchiamoci le maniche, c'è molto da studiare.

Print | posted on Monday, October 27, 2003 11:34 PM |

Feedback

No comments posted yet.

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 3 and 8 and type the answer here:

Powered by:
Powered By Subtext Powered By ASP.NET