Domanda

Ho sempre avuto un debole per C ++ / CLI. Forse perché non molti sviluppatori lo usano ... o solo perché è diverso.

Supponiamo che Microsoft abbia supportato completamente C ++ / CLI come fanno VB.NET e C # (es. LINQ, WPF, ecc.). Lo useresti?

In caso contrario, perché?

È stato utile?

Soluzione

I lo uso . Anche con la relativa mancanza di supporto degli strumenti, batte ancora P / Invoke crudo per gestire Win32.

Per quanto riguarda LINQ, non mi interessa davvero vedere troppo più hackerato nel linguaggio C ++. LINQ è abbastanza utilizzabile così com'è - se miglioreranno il compilatore, dovrebbero funzionare sul supporto C ++ 0x ...

Altri suggerimenti

Si tratta solo di usare lo strumento giusto per il lavoro giusto. Uso C ++ / CLI per il lavoro di interoperabilità della piattaforma perché è molto più facile ottenere il marshalling corretto. Uso C # per quasi tutti gli altri lavori .NET, con alcuni VB.Net (mi piace l'XML inline). Ammetto di non aver ancora imparato IronRuby, IronPython, F # o qualsiasi altro linguaggio .NET, ma lo sto seriamente prendendo in considerazione solo per aumentare il mio arsenale di programmazione.

Per rispondere alla domanda, non penso che la userei più di quanto già faccia perché sento di usarla già per i lavori che si adattano meglio. C # è ancora il miglior linguaggio .NET per come lo vedo perché è stato progettato specificamente per quella piattaforma, piuttosto che adattarsi a un linguaggio più vecchio per adattarlo. L'aggiunta di un miglior supporto per C ++ / CLI ridurrebbe solo i miei tempi di sviluppo, piuttosto che influenzare il mio utilizzo da un'altra lingua.

C ++ / CLI mantiene molto efficacemente la promessa di unire il codice gestito e non gestito. Ti consente di esporre quella che sembra una libreria C # perfettamente nativa con accesso al 100% alle librerie / C ++ native "all'interno". Non è un esercizio di eleganza, ma nella storia di strumenti di programmazione pratica ciò che confronta?

Se hai bisogno di LINQ e WPF, usa semplicemente C #. Questa è la bellezza di C ++ / CLI: scrivi il tuo wrapper Managed e poi torna a C #. Non vedo C ++ / CLI che intendono sostituire C # per l'uso quotidiano.

  

... ma non sono del tutto chiaro su cosa offre C ++ / CLI che C # non offre. - @ Thomas Owens

Un enorme vantaggio (nel mio libro) è RAII (vedi risposta data da Adam Wright alla mia domanda riguardante RAII in .NET ).

Forse ... ma non sono del tutto chiaro su ciò che C ++ / CLI offre a C # no. Puntatori, forse? Ho fatto tutta la mia programmazione .NET (il poco che ho fatto) in C # e sto iniziando a imparare F #, ma se fosse completamente supportato e ben documentato, sicuramente, ci proverei.

Sto mescolando C ++ / CLI con MFC per sfruttare WPF e XAML, ma sto usando il nuovo pacchetto di funzionalità C ++ 2008 senza componenti nastro. :)

Non lo userei perché non voglio essere legato a un enorme tempo di esecuzione. E non mi piacciono tutte quelle ^ cose da puntatore :)

Mi piace / mi manca la grande libreria che offre .NET.

Lo uso per supportare il codice legacy e per scrivere shim tra codice gestito e codice nativo. Adoro che VS11 lo supporti molto meglio

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