La maggior parte dei compilatori already support C++0x. Hai iniziato a usare C++ 0x o stai aspettando la definizione di x? Devo fare un po 'di refactoring del mio codice; dovrei iniziare a utilizzare le nuove funzionalità?Hai iniziato a utilizzare C++ 0x?
risposta
C++ 0x non è ancora uno standard completo. È probabile che ci saranno molte revisioni prima che venga rilasciato uno standard internazionale accettato. Quindi tutto dipende, per cosa stai scrivendo il codice? Se si tratta di un incarico di lavoro, vorrei attenermi al normale C++, attendere che lo standard sia impostato e dare alla comunità di programmazione il tempo necessario per adattarsi. Non è un codice refactoring che devi veramente implementare, potrebbe darti un sacco di problemi.
Tuttavia penso che C++ 0x sia fantastico da giocare e inoltre non può fare male conoscere la sintassi quando 0x è accettato globalmente.
Il piano è per lo standard che verrà rilasciato verso la fine di quest'anno e non ci si aspetta che ci siano molte revisioni. Hanno già preso una bozza e sono stati rivisti una o due volte. Più tardi quest'anno, lo metteranno in votazione in ISO, e ci si aspetta che vi passi senza problemi. – jalf
Continuerò a scrivere codice di produzione fino a '0x + y, dove y è quando lavorano i bug fuori dal compilatore e lo portano in complience standard (qualunque sia lo standard).
Ma per lo sviluppo? Lo uso per giocare, scrivere project euler, ecc. Lo uso anche su presentazioni e newsgroup.
Inizierò a utilizzarlo quando Visual Studio COMPLETAMENTE lo supporta. Al momento VS10 supporta solo alcune funzionalità.
Ho pensato anche in questo modo. Ma aspettare la piena implementazione potrebbe prendere un buon tempo (la mia opinione è che ci vorranno anni e forse ci saranno alcune piccole funzionalità usate di rado che non saranno mai implementate in alcuni compilatori!). Quindi userò tutte le funzionalità che sono disponibili in tutti i compilatori coinvolti. (Difficilmente dovremo usare GCC 3.4.5 per il nostro sviluppo integrato: - ((() – mmmmmmmm
Ho iniziato a utilizzare nullptr
, utilizzando #define nullptr 0
per quei compilatori (ad esempio la maggior parte) che non lo supportano ancora.
+1: attualmente sto pensando di fare lo stesso – mmmmmmmm
Fare lo stesso. –
Siamo ancora in procinto di passare da VS6 a VS 2005. Probabilmente non useremo esclusivamente compilatori C++ 0x per nuovi lavori fino alla fine del 201x.
Ci sono pochissimi compilatori che supportano qualcosa. In realtà VS supporta solo le librerie TR1, gcc supporta alcune funzionalità come variadic templatres, rvalue, auto e altre ancora. Il compilatore Intel ne ha alcuni.
Io per lo più iniziato ad usare i modelli variadic come:
#ifdef HAvE_VARIADIC
template<typename... Args>
void format(std::string,Args... args);
#else
template<typename T1>
void format(std::string,T1 p1);
template<typename T1,typename T2,>
void format(std::string,T1 p1,T2 p2);
...
template<typename T1,typename T2,...,typename T10>
void format(std::string,T1 p1,T2 p2,..., T10 p10);
#endif
Abbiamo giocato con C++ 0x molto e ora quando gcc supporta alcune delle caratteristiche che li usare come appena sono disponibili. Il motivo è semplice: con la parola chiave auto si risparmia un sacco di digitazione, con i riferimenti rvalue si ottengono miglioramenti delle prestazioni e con gli elenchi di inizializzazione e i modelli variadici meno la digitazione e il codice molto più leggibile.
In realtà gli obiettivi principali dello standard C++ 0x sono anche i nostri obiettivi, perché avremo vantaggi per i nostri concorrenti con queste caratteristiche. Ecco perché li useremo senza aspettare affatto. Naturalmente se hai bisogno di compatibilità multi piattaforma, questo passaggio non è accettabile. Nel caso in cui non ti interessa, usalo immediatamente e puoi vincere.
Sì, sto già utilizzando C++ 0x e rilasciando librerie e codice open source. Tutti i miei futuri progetti open source in C++ saranno scritti in questa variante.Dopo aver usato i parametri del modello variadic e decltype/auto non posso tornare indietro!
- 1. Transizione a C++ 0x da C++ 98
- 2. Threading C++ 0x
- 3. Etica della fatturazione per il lavoro svolto su una piattaforma che hai appena iniziato a studiare
- 4. "Backporting" nullptr a C++ - programmi pre-C++ 0x
- 5. Come utilizzare il thread C++ 0x in Android NDK?
- 6. È legale l'ottimizzazione C++ 0x?
- 7. Ereditare costruttori in C++ 0x
- 8. C++ 0x regex in GCC
- 9. Hai bisogno di utilizzare path.join in Node.js?
- 10. Funzione "id" in C++ 0x
- 11. _1 parte di C++ 0x?
- 12. Esempio elenco inizializzatore C++ 0x
- 13. CMake clang and C++ 0x
- 14. Versione minima iOS che supporta C++ 0x
- 15. usare o non usare C++ 0x dispone
- 16. Come implementare letteralmente stringa raw C++ 0x?
- 17. Come utilizzare robolectric per testare iniziato intenti con dati aggiuntivi
- 18. C++ 0x Peer di costruzione della VC2010
- 19. C++ 0x compila ma errori di editor di eclissi anche con -gnu ++ 0x discovery
- 20. come cache un lambda in C++ 0x?
- 21. Domanda su C++ 0x reference collapse
- 22. C++ 0x ottimizzando la qualità del compilatore
- 23. Implementazione del modello atomico C++ 0x
- 24. problema con std :: make_tuple in C++ 0x
- 25. Come restituire un fstream (C++ 0x)
- 26. C++ 0x inizializzazioni statiche e sicurezza filo
- 27. Implementazione di un buon C++ 0x error_condition?
- 28. Piani di libreria per C++ 0x?
- 29. C++ 0x: overloading su lambda arity
- 30. C++ 0x rvalue riferimenti e provvisori
No, non ci sono ancora TUTTI i compilatori che supportano completamente C++ 0x. Diversi compilatori hanno implementato un parziale SUBSET delle funzionalità di C++ 0x, ma non quasi tutto. Inoltre, lo standard non è ancora finito e potrebbe cambiare. –
Sono a corto di tempo prima che debbano rinominarlo C++ 1x. –
Sarà C++ 0a se è in ritardo –