Sto lavorando per un prodotto che utilizza C++ principalmente per i suoi componenti principali. Sebbene utilizzi Visual C++ come compilatore primario per la piattaforma Windows e sia l'editor e il debugger come ambiente di sviluppo primario, non utilizza alcuna tecnologia specifica di Microsoft. Per altre piattaforme utilizza gcc per la compilazione.migrazione a C++ 11
La mia base di codice utilizza pesantemente il riferimento di valore emulato (utilizzando la libreria di spostamento boost), i modelli variadici (utilizzando il processore di boost) e in alcuni casi i modelli di espressione.
Sono tentato di passare a C++ 11 per ottenere una base di codice più pulita utilizzando il riferimento di rvalue, l'inoltro perfetto, l'impostazione predefinita e l'eliminazione per costruttori, modelli variadici e auto e decltype.
In tal caso, potrei eseguire alcune rielaborazioni sul codice esistente per semplificarlo (utilizzando l'alias del modello e potrebbe essere constexpr). In tal caso, devo passare a gcc per la piattaforma Windows usando mingw, in quanto lo studio visivo non ha implementazioni per default e cancella e template variadic. Inoltre devo passare a gdb come debugger e ad un altro editor di codice.
Per me un vantaggio enorme in termini di semplicità e prestazioni del codice, tuttavia stabilità, disponibilità (su alcune piattaforme come Android), debugging (migrazione da Visual Studio a gdb, poiché abbiamo molti strumenti di visualizzazione sviluppati per Visual Studio Debugger) e l'editor di codice (non tanto per il pesante codice dei template che non trovo molti usi di auto completamento, refactoring ecc. e codelite, codeblocks, qt creatore funziona bene con il nostro sistema di compilazione) sono alcuni dei problemi.
Mi piacerebbe sapere se uno qualsiasi dei progetti di media/grande scala commerciale o open source utilizza/intende utilizzare una delle caratteristiche di C++ 11 sopra menzionate? E quanto sforzo è richiesto per fare questa migrazione?
Qualsiasi esperienza pratica, consigli o parole di saggezza mi aiuteranno a prendere una decisione.
Le domande di avviso e di elenco non sono in genere le attività di Overflow di stack. –
Ti suggerisco di aspettare ancora un po '. Attendere fino al corretto supporto VC++. I file di intestazione in mingw32 sono problematici. –
dare un'occhiata al progetto clang hanno il [C++ 11 Migrator] [1] nei repository [1]: http://blog.llvm.org/2013/04/status-of-c11- migrator.html – Alex