Domanda

Un compilatore C ++ CLI sarebbe in grado di compilare alcuni grandi set di classi C ++ senza modifiche?

La CLI C ++ è un superset di C ++?

È stato utile?

Soluzione

tecnicamente no, ma a seconda di quanto è standard il codice C ++, probabilmente starai bene. quando entri nelle cose di Windows potresti incorrere in problemi. Ho compilato l'intero motore di gioco che usiamo al lavoro in C ++ / CLI una volta e ha funzionato bene. Un collega ha fatto lo stesso per tutti Mozilla e senza fortuna.

Altri suggerimenti

Secondo Wikipedia :

  

C ++ / CLI dovrebbe essere pensato come un linguaggio a sé stante (con un nuovo set di parole chiave, ad esempio), invece del C ++ gestito C ++ orientato al superset

Sono ancora nuovo con la mia curva di apprendimento su C ++ / CLI - ma ho avuto la stessa domanda me stesso, e quello che ho determinato finora è che C ++ / CLI è, come linguaggio, un superset di standard C ++.

Se non usi le estensioni CLI, il tuo codice C ++ finirà come codice non gestito nativo e dovrebbe essere essenzialmente lo stesso, ma compilato per IL CLR, anziché x86 nativo.

Una volta che inizi a utilizzare le estensioni della CLI (e inizi a cadere nell'uso di oggetti / handle / classi gestite), inizi a interagire più pesantemente con la piattaforma CLR sottostante. A quel punto, diventa essenzialmente una nuova "lingua", e dovrai separare il tuo pensiero tra il "non gestito" lato e il "gestito" lato.

C ++ / CLI non è un superset di C ++. Piuttosto è un sottoinsieme con aggiunte. PER ESEMPIO. C ++ / CLI non supporta l'ereditarietà multipla.

Angelo

Pagina 3 del libro di Marcus Heege "Expert C ++ / CLI.NET per programmatori Visual C ++":

  

C ++ / CLI è un set di estensioni creato per   il linguaggio C ++ per beneficiare del   servizi che un'implementazione del   Offerte CLI.

E più in basso nella stessa pagina:

  

C ++ / CLI è un superset del linguaggio C ++.

Il suo eccellente libro è disponibile gratuitamente da qui .

Sono stato in grado di compilare l'intera libreria Qt (che è enorme) come C ++ / CLI con modifiche minori (principalmente nell'ambiente di build, ma ho anche corretto un bug nel codice sorgente di Qt)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top