web-dev-qa-db-fra.com

Quel est l'état de la prise en charge de C ++ 17 dans GCC?

Clang a un Nice page décrivant l'état du projet w.r.t. Prise en charge des fonctionnalités C++ 1z/C++ 17 (et C++ 11 et C++ 14, c'est la même page).

g ++ a ne page concernant les fonctionnalités de C++ 14 , mais je n'ai rien trouvé sur C++ 17/C++ 1z. Est-ce en cours d'élaboration, mais tout simplement pas présent sur le Web? Pour la version 5.0?

33
einpoklum

Réponse finale résumée mise à jour:

  • GCC 8.x (et versions ultérieures) prend entièrement en charge tout C++ 17.
  • GCC 7.x prend en charge tout C++ 17, à l'exception de la déduction d'arguments de modèle de classe.
  • GCC 6.x (et versions antérieures) peu ou pas de prise en charge des fonctionnalités C++ 17.

Merci @JanVanDijk pour le lien vers le tableau complet des fonctionnalités .

5
einpoklum

À ce jour, le support du langage C++ 1z de gcc est suivi sur: https://gcc.gnu.org/projects/cxx1z.html . Pour l'état C++ 1z de libstdc ++, voir https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.201z .

30
Jan van Dijk

Il existe déjà un certain soutien; Les deux résumés suivants sont orientés sur la liste de Clang:

Pris en charge (au 5 juillet 2015):

  • auto pour les paramètres de fonction est pris en charge depuis 4.9 . Cette fonctionnalité est actuellement considérée comme une extension mais est incluse dans la proposition de concepts et appelée "fonctions génériques".
  • les trigraphes sont ignorés par défaut depuis 5.1.
  • typename pour les paramètres du modèle de modèle depuis 5.1.
  • nouvelles règles de déduction pour l'initialisation directe de la liste depuis 5.1.
  • static_assert sans message dans HEAD
  • u8 littéraux de caractères dans HEAD
  • Attributs pour les espaces de noms ou les énumérateurs dans HEAD

Non pris en charge (au 5 juillet 2015; avec des liens vers un exemple d'utilisation valide):

Pour l'état d'implémentation des propositions de bibliothèque dans libstdc ++, le manuel correspondant a une liste.

7
Columbo

Il y a aussi un joli tableau sur cppreference.com qui répertorie les fonctionnalités prises en charge pour plusieurs compilateurs.

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

4
BoshWash