Come si verifica la presenza di singole funzionalità del linguaggio C++ 0x/C++ 11? So che Clang ha un bel sistema per questo. Che dire di GCC, Visual Studio o Boost? Immagino che un modo per farlo sia rilevare la versione del compilatore e collegarla alle funzionalità introdotte in quella versione. Ma questo è ingombrante. Qualcuno lo ha già fatto?Controllo funzionalità C++ 11
risposta
boost config viene fornito con uno script per verificare alcune funzionalità di C++ 11, ma non tutte.
Genera un file di configurazione con macro per ciascuna funzionalità.
Penso che volevi scrivere qualcosa dopo * Vedi: *. Comunque, sì, Boost.Config è probabilmente la migliore scommessa. I ragazzi di Boost già rintracciano tali informazioni in modo da non doverlo fare: insinuano la squadra del compilatore per sapere con precisione quando è abbastanza stabile da essere pubblicizzata, o nel caso di Clang richiede nuove flag di controllo. –
In realtà era un residuo di una bozza-risposta. Lo cancellerò. Grazie. – mirk
Il tuo strumento di compilazione potrebbe essere d'aiuto.
CMake ha il comando try_compile
che consente di verificare se un esempio di codice verrà compilato e impostato una variabile in base al risultato della compilazione.
Al momento ho appena utilizzato le funzionalità più comunemente supportate come la digitazione auto
.
Spesso è possibile utilizzare Boost per sostituire le funzionalità della libreria mancanti e questa potrebbe essere l'opzione migliore per alcuni anni mentre i compilatori e le librerie vengono aggiornati e gli errori risolti.
Il C++ 11 caratteristica lista di compatibilità per il GCC è qui: http://gcc.gnu.org/projects/cxx0x.html
Nota l'avvertimento:
Importante: il supporto del GCC per C++ 11 è ancora in fase sperimentale. Alcune funzionalità sono state implementate in base a proposte iniziali e non verrà effettuato alcun tentativo per mantenere la compatibilità con le versioni precedenti quando vengono aggiornate per corrispondere allo standard C++ 11 finale.
- 1. Funzionalità C++ 11 con MinGW
- 2. Disponibilità di funzionalità C++ 11
- 3. Controllo autotools per C++ 11
- 4. Quali funzionalità di C++ 11 supporta Visual Studio 2010?
- 5. Come utilizzare le funzionalità di C++ 11 con Autoconf?
- 6. Disattivazione delle funzionalità di C++ 11 su VS2012
- 7. Controllo del tipo di oggetto in C++ 11
- 8. C++ 11: blocco doppio controllo sicuro per l'inizializzazione pigra. Possibile?
- 9. Qt Creator, controllo della sintassi per C++ 11
- 10. C++ 11 numeri casuali
- 11. Perché la compilazione con C++ 11 ha successo nonostante si usi la funzionalità C++ 14?
- 12. compilatore C++ che supporta tutte le funzionalità di concorrenza C++ 11?
- 13. Come aggiornare a C++ 11?
- 14. Rilevamento funzionalità del browser: controllo ortografico?
- 15. Controllo override + s (salva funzionalità) nel browser
- 16. Controllo della funzionalità di registrazione in hadoop
- 17. C++ 11 Errore sego asincrono
- 18. Usa C++ 11 in Qt Creator
- 19. Inizializzazione stringa C++ 11
- 20. C++ 11 std :: array
- 21. C++ 11 Destructor = delete
- 22. clang ++ C++ 11 invocazione
- 23. C++ 11 closure shared_ptr
- 24. È valido C++ 11
- 25. Macro predefinita C++ 11
- 26. pahole C++ 11 supporto?
- 27. C++ 11: esecutore universale
- 28. C++ 11 regex_token_iterator
- 29. Delegato in C++ 11
- 30. C++ 11 initialize map
Risposta diretta sarebbe scrivere un codice con quella funzione e compilarlo. – iammilind
Perché questa domanda dovrebbe essere chiusa? –
@ Nordlöw: due persone hanno votato per chiuderlo come duplicato di [questa domanda] (http://stackoverflow.com/q/6095885/636019). – ildjarn