Quali sono le funzionalità di C++11
mature che posso iniziare a utilizzare in modo sicuro nei miei progetti. Sto parlando di GCC
principalmente raramente ho bisogno di Visual Studio. e ovviamente non voglio includere una funzionalità nel mio codice che richiede una riscrittura dopo pochi mesi. e dovrei iniziare a usare queste funzionalità proprio in questo inizio? perché qualunque cosa facciamo per lo più non è c++11 dependent
, possiamo fare tutto e anche tutti i metodi della vecchia scuola. quindi dovremmo iniziare a utilizzare le funzionalità di C++ 11 in questa fase iniziale?Quale funzionalità stabile di C++ 11 può essere utilizzata in modo sicuro
risposta
Lo standard C++ 11 è finalmente pronto e pubblicato, quindi non ci saranno più modifiche. Le implementazioni sono ancora in ritardo e potrebbero implementare versioni leggermente più vecchie di C++ 0x, ma probabilmente non noterai molta differenza quando saranno aggiornate.
C++ 11 non è perfettamente compatibile con le versioni precedenti, quindi la prima cosa da fare è iniziare a sviluppare con la compatibilità con C++ 11. GCC ha un flag di avviso, "-WC++ 0x-compat", per aiutare con questo. Le incompatibilità sono abbastanza piccole, ma questo dovrebbe rivelare tutto ciò che sarà un problema.
Una grande incompatibilità è che l'ABI di libstdC++ cambia con il passaggio a C++ 11, quindi dovrai anche assicurarti di poterlo affrontare.
Una volta che sai che è sicuro di spostarti, inizia semplicemente a costruire in modalità C++ 11. È possibile adottare gradualmente qualsiasi funzionalità di C++ 11 ti sembra utile mentre scrivi nuovo codice o modifichi il vecchio codice. Si potrebbe anche prendere in considerazione la possibilità di controllare gli usi di funzionalità deprecate, come le vecchie specifiche delle eccezioni, e sostituirle con quelle nuove.
C'è un sacco di roba nuova, quindi dai un'occhiata allo standard se riesci ad ottenerlo o qualche documentazione online. Trovo che la maggior parte delle cose veramente interessanti che voglio usare direttamente sia nella libreria. Sfortunatamente ciò sembra essere il punto in cui le attuali implementazioni sono ancora in ritardo.
Si consiglia di visitare il sito:
http://gcc.gnu.org/projects/cxx0x.html
Questo collegamento dà il supporto C++ 0x in diverse versioni GCC.
Ti suggerisco di usare C++ 11 ora (basta aggiungere -std = C++ 0x nella riga di comando GCC). Se tu fossi fortunato, allora nulla sarebbe cambiato nel tuo codice. Anche se non si utilizzano le funzionalità di C++ 11, si può ancora trarre vantaggio dai miglioramenti delle prestazioni derivanti dai riferimenti rvalue e dalla semantica del movimento.
- 1. Disponibilità di funzionalità C++ 11
- 2. L'API WPF può essere utilizzata in modo sicuro in un servizio WCF?
- 3. Controllo funzionalità C++ 11
- 4. Quale contenuto non può essere FTP sicuro in modalità binaria?
- 5. quale libreria c/C++ può essere utilizzata per gestire le connessioni wifi per linux?
- 6. Funzionalità C++ 11 con MinGW
- 7. In che modo questo frammento C può essere scritto in modo più sicuro?
- 8. Uso di C++ 11 lambda in modo asincrono, in modo sicuro
- 9. quale libreria può essere utilizzata per convertire la bitmap in vettoriale?
- 10. È Request.IsLocal sicuro o può essere falsificato?
- 11. Ogni iterazione di un ciclo for/for_each può essere eseguita in parallelo? (C++ 11)
- 12. Scrittura di una classe C++ che può essere utilizzata come statica, ma richiede un blocco
- 13. In che modo la funzionalità di campo sconosciuta può essere replicata in proto3?
- 14. C++ Che cosa determina quale versione di C++ può essere eseguita su un'architettura specifica (come Arduino)
- 15. Autenticazione LDAP con `ldap-haskell`: può essere reso sicuro?
- 16. Objective-C stabile ABI
- 17. La libreria Libsndfile può essere utilizzata su iPhone iOS?
- 18. Come utilizzare le funzionalità di C++ 11 con Autoconf?
- 19. AUTO_INCREMENT può essere utilizzato in modo sicuro in PRINCIPALE TRIGGER in MySQL
- 20. Quali funzionalità di C++ 11 supporta Visual Studio 2010?
- 21. Disattivazione delle funzionalità di C++ 11 su VS2012
- 22. Il keySet() di SortedMap può essere sempre trasmesso in modo sicuro a SortedSet?
- 23. Esiste un modo per rilevare se esiste una funzione e può essere utilizzata in fase di compilazione?
- 24. C++ 11: blocco doppio controllo sicuro per l'inizializzazione pigra. Possibile?
- 25. Esiste una classe C++ che non può essere utilizzata in AWL?
- 26. L'espressione di tipo 'System.Int32' non può essere utilizzata per il tipo di ritorno 'System.Object'
- 27. Quale cifra viene utilizzata su NFS crittografato?
- 28. Con quale frequenza posso memorizzare in modo sicuro cache baseUrl?
- 29. Come impostare una funzione C++ in modo che possa essere utilizzata da p/invoke?
- 30. L'impostazione HAYSTACK_SITECONF non è più utilizzata e può essere rimossa
Quale versione di GCC è destinata al targeting, dove verrà eseguito questo codice, quali sono i sistemi di destinazione utilizzati ... Questa pagina descrive quando le funzionalità erano disponibili nelle versioni di GCC: http://gcc.gnu.org/projects/cxx0x. html – birryree
Sto usando MinGW su Windows Non ho controllato quella versione. e su Linux ho 4.3.2, ma non lo so dove mi troverò la prossima volta al lavoro. –
queste funzionalità sono aperte alle modifiche? o sono stabili? –