C++/CLI: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nick31629 (discussione | contributi)
traduzione parecchio imprecisa e inesatta, a tratti con significato completamente fuorviante ed errato - sistemo
Riga 1:
{{T|inglese|informatica|dicembre 2016}}
'''C++/CLI''' (C++ modificato per la [[Common Language Infrastructure]]) è un [[linguaggio di programmazione|linguaggio]] specifico creato da Microsoft e destinato a sostituire estensioni gestite per [[C++]]. Si tratta di una revisione completa che mira a semplificare la sintassi più vecchia del C gestito ++, che ora è sconsigliato.<ref>[http://msdn.microsoft.com/en-us/library/b23b94s7.aspx Managed Extensions for C++ Syntax Upgrade Checklist - MSDN Library]</ref> C++/CLI era standardizzato da [[ECMA International|Ecma]] come '''ECMA-372'''. È disponibile in [[Microsoft Visual Studio|Visual Studio]] 2005, 2008, 2010, 2012, 2013 e 2015, incluse le versioni Express.
 
==Cambiamenti sintattici ==
__TOC__
 
'''C ++ / CLI''' deve essereè pensatoconcepito come un linguaggio a sé stante, (con una nuovanuovo serieinsieme di parole chiave, pera esempio),differenza invecedel di C ++ superset-oriented '''Managed C++''' (MC ++), (leche è più un'estensioni qualiin cui le parole chiave non standard sono state modellate come ''or__value __gc)''. ADi causa di questoconseguenza, ci sonointroduce alcune importanti modifiche sintattiche, soprattutto legate principalmente all'eliminazione di identificatori ambigui e lall'aggiunta di funzionalità specifiche NET.
== I cambiamenti di sintassi ==
 
Molte sintassi in conflitto, come le versioni multiple dell'operatore <code>new()</code> in MC ++, sono state separate: nel C ++ / CLI ede in .NET i tipi di riferimento sonovengono creati con la nuova parola chiave ''<code>gcnew''</code> (adche esempiosta per ''[[Garbage collection|garbage collected]] new ()''). Inoltre, C ++ / CLI ha introdotto il concetto didei generici da .NET (simile, per gli scopi più comuni, per iai modellitemplate standard C ++, ma molto diversadiversi nella loro implementazione).
'''C ++ / CLI''' deve essere pensato come un linguaggio a sé stante (con una nuova serie di parole chiave, per esempio), invece di C ++ superset-oriented '''Managed C++''' (MC ++) (le quali parole chiave non standard sono state modellate come or__value __gc). A causa di questo, ci sono alcune importanti modifiche sintattiche, soprattutto legate all'eliminazione di identificatori ambigui e l'aggiunta di funzionalità specifiche NET.
 
Molte sintassi contrastanti, come le versioni multiple dell' operatore ''new()'' in MC ++, sono state divise:
nel C ++ / CLI ed in.NET i tipi di riferimento sono creati con la nuova parola chiave ''gcnew'' (ad esempio ''[[Garbage collection|garbage collected]] new ()''). Inoltre, C ++ / CLI ha introdotto il concetto di generici da .NET (simile, per gli scopi più comuni, per i modelli standard C ++, ma molto diversa nella loro implementazione).
 
===Puntatori===
 
In MC ++, vi erano due diversi tipi di [[Puntatore (programmazione)|puntatori]]: puntatori ''__nogc'', cheessenzialmente erano normaliordinari ''puntatori C ++'', mentree i puntatori ''__gc'', lavoraronousati suiper i tipi di riferimento '''.NET'''. Nel '''C ++ / CLI''', tuttaviainvece, l'unico tipo di puntatore è il normale puntatore C ++, mentre i tipi di riferimento .NET sono accessibili attraverso un ''puntatorehandle'', conusando la nuova sintassi '' <code>ClassName^</code> '' (invece di '' <code>ClassName '')*</code>. Questo nuovo costrutto è particolarmente utile quando gestito ed il codice standardcontiene Cinsieme codice C++ èstandard mescolatoe codice gestito;è consente di rendere chiaro chequali sono gli oggetti automaticamentegestiti sono sotto ildal '''.NET garbage collection''' automatico di .NET e quindiquali sono invece gli oggetti che il programmatore deve ricordarsi di ''distruggerli''distruggere in modo esplicito.
 
==Note==
<references />