2015-07-05 16 views
27

Clang ha un nice page che descrive lo stato del progetto w.r.t. Supporto di funzionalità C++ 1z/C++ 17 (e C++ 11 e C++ 14, è la stessa pagina).Qual è lo stato del supporto C++ 1z/C++ 17 in gcc?

g ++ ha a page regarding C++14 features, ma non ho trovato nulla su C++ 17/C++ 1z. Funziona, ma non è presente sul Web? Per la versione 5.0?

+1

C++ 17 è in stato iniziale di sviluppo e, m che ne so, non c'è il supporto per le sue caratteristiche in GCC ancora. Anche clang ha un supporto limitato e sperimentale per questo (http://clang.llvm.org/cxx_status.html#cxx17). D'altra parte alcuni progressi sono stati fatti anche in GCC, vedi: https://patchwork.ozlabs.org/patch/370773/ o https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options. html. – Goofy

+3

[libstdC++ 201z] (https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z) – inf

risposta

7

C'è già qualche supporto; I seguenti due riassunti sono orientati nella lista di Clang:

supportati (come del 5 luglio, 2015):

  • auto ai parametri di funzione è supportata since 4.9. Questa funzione è attualmente considerata un'estensione, ma è inclusa nella proposta di concetti e denominata "funzioni generiche".
  • trigrammi vengono ignorati per default since 5.1.0
  • typename per i parametri template since 5.1.0
  • nuove regole di deduzione per-list-inizializzazione diretta since 5.1.0
  • static_assert senza un messaggio in HEAD
  • u8 letterali carattere in HEAD
  • Attributi per spazi dei nomi o enumeratori in HEAD

Non supportato (a partire dal 5 luglio 2015; con link a un uso valido esempio):

Per lo stato di attuazione delle proposte della biblioteca in libstdC++, the corresponding manual ha una lista.

+0

"auto per parametri di funzione" Che cos'è questo? Non riesco a trovarlo nell'elenco [C++ 17] (https://en.wikipedia.org/wiki/C%2B%2B17). – Suma

+0

Trigrams non sono davvero un problema. Se li vuoi, puoi sempre definirli come parte della codifica sorgente del sistema. –

+1

@ Suma: "auto per parametri di funzione" è C++ 14: https: // stackoverflow.it/questions/17233547/how-does-generic-lambda-work-in-c14 (mentre l'esempio mostrato è probabilmente un'estensione gcc). – Thomas

4

C'è anche una bella tabella in cppreference.com che elenca le funzionalità supportate per diversi compilatori.

http://en.cppreference.com/w/cpp/compiler_support

+0

Questo in realtà sembra essere più aggiornato e completo rispetto alle pagine delle funzionalità gestite dagli effettivi produttori di compilatori (!!!). –

+0

In realtà, la pagina MSVC è piuttosto buona, è solo difficile da trovare: https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance –

Problemi correlati