cpp/compiler support/vendors
From cppreference.net
<
cpp
|
compiler support
Listes de compatibilité individuelles par fournisseur
GCC (mis à jour 2025-01)
- État du support du langage cœur C++11 (complet à partir de 4.8.1, sauf pour N2670 , qui n'est implémenté par aucun compilateur et supprimé dans C++23)
- État du support de la bibliothèque C++11 (complet à partir de 5.1)
- État du support du langage cœur C++14 (complet à partir de 5.1)
- État du support de la bibliothèque C++14 (complet à partir de 5.1)
- État du support du langage cœur C++17 (complet à partir de 7.1)
- État du support de la bibliothèque C++17 (complet à partir de 12.0)
- État du support du langage cœur C++20 (complet à partir de 11.0, sauf partie des modules)
- État du support de la bibliothèque C++20 (complet à partir de 14.0)
- État du support du langage cœur C++23
- État du support de la bibliothèque C++23
- État du support du langage cœur C++26
- État du support des Spécifications Techniques
- État des rapports de défauts du langage cœur
Clang (mis à jour 2025-01)
- État de conformité en temps réel de libc++
- État du support du langage cœur C++11 (complet à partir de 3.3)
- État du support de la bibliothèque C++11 (complet à partir du 2012-07-29 )
- État du support du langage cœur C++14 (complet à partir de 3.4)
- État du support de la bibliothèque C++14 (complet à partir de 3.5)
- État du support du langage cœur C++17 (complet à partir de 5.0)
- État du support de la bibliothèque C++17
- État du support du langage cœur C++20
- État du support de la bibliothèque C++20
- État du support du langage cœur C++23
- État du support de la bibliothèque C++23
- État du support du langage cœur C++26
- État du support de la bibliothèque C++26
- État du support des Spécifications Techniques
- État des rapports de défauts du langage cœur
Apple Clang (mis à jour 2025-01)
- Versions de la chaîne d'outils Xcode sur Wikipédia
- Prise en charge du langage C++ et de la bibliothèque standard C++ dans Xcode
- Notes de version de Xcode
- État de la prise en charge de C++20/23/26 dans Xcode 16
Microsoft Visual Studio (mis à jour 2025-02)
- Conformité du langage Microsoft C/C++ (depuis Visual Studio 2015)
- Journal des modifications STL (depuis Visual Studio 2019 16.5)
-
Références pour les fonctionnalités non incluses ci-dessus
- Prise en charge des fonctionnalités C++11/14/17 (C++ moderne) incluant les fonctionnalités de base du langage C++11
- Nouveautés de Visual C++ 2003 à 2015 incluant C++11 N1913
- Fonctionnalités C++14/17 et correctifs STL dans VS « 15 » Preview 5 incluant C++14 LWG2112, LWG2246 et LWG2285 et C++17 LWG2296
- Fonctionnalités et correctifs STL dans VS 2017 15.8 incluant C++17 LWG2911
- Améliorations de conformité C++, changements de comportement et corrections de bogues dans Visual Studio 2022 incluant C++23 P2334R1
- CWG 2518 non encore implémenté - static_assert dans un template non instancié produit une erreur incluant C++23 CWG2518
- Mises à jour du langage du compilateur MSVC dans Visual Studio 2022 version 17.12 incluant C++23 P2128R6
- Mises à jour du langage C++ dans MSVC dans Visual Studio 2022 17.13 incluant C++23 P0330R8, P0847R7 et P2242R3
Intel C++ (mis à jour 2023-01)
- État de la prise en charge du langage de base C++11 (complet à partir de la version 15.0)
- État de la prise en charge du langage de base C++14 (fonctionnellement complet à partir de la version 17.0 - N3664 est une optimisation)
- État de la prise en charge du langage de base C++17 (incomplet)
- État de la prise en charge du langage de base C++20 (incomplet)
- Fonctionnalités C++17 de la version bêta 19.0 d'Intel
-
Intel ne fournit pas d'implémentation de la bibliothèque standard C++, à l'exception de
- Parallel STL (une implémentation des algorithmes de la bibliothèque standard C++17 avec prise en charge des politiques d'exécution)
- Compatibilité d'Intel avec les versions de libstdc++ de GCC
EDG (mis à jour 2025-01)
- État du support du langage cœur C++11
- État du support du langage cœur C++14
- État du support du langage cœur C++17
- État du support du langage cœur C++20
- État du support du langage cœur C++23
- État du support du langage cœur C++26
- EDG ne fournit pas d'implémentation de la bibliothèque standard C++
Oracle C++ (mis à jour 2017-07)
- Le numéro de version correspond à la version du compilateur, non à la version d'Oracle Studio
- État du support du langage C++11 dans la version 5.13
-
Fonctionnalités C++14 ajoutées dans la version 5.14
- Support complet de C++14 ajouté dans la version 5.15.
-
Oracle fournit 4 implémentations de la bibliothèque standard C++ :
- libCstd (RogueWave Standard Library version 2), antérieure à C++98
- stlport4 (STLport Standard Library version 4.5.3), antérieure à C++03
- stdcxx4 (Apache Standard Library version 4), antérieure à C++11
- libstdc++ (bibliothèque d'exécution GCC, support pour C++11 et C++14 selon la version)
IBM XL C++ (mis à jour 2018-05)
-
IBM XL C++ pour Linux
- État de la prise en charge du langage de base : C++11 complet à partir de 13.1.6, C++14 partiel dans 16.1.0
- IBM ne fournit pas d'implémentation de la bibliothèque standard C++ pour Linux (utilise GNU libstdc++)
-
IBM XL C++ pour AIX
- État de la prise en charge du langage de base : C++11 partiel dans 13.1.3 et 16.1.0 (frontend xlC), complet dans 16.1.0 (frontend xlclang)
- IBM fournit une version de la bibliothèque Dinkumware pour AIX avec prise en charge complète de C++ TR1, incluant <regex>, mais pas C++11
- Fonctionnalités des compilateurs IBM XL C/C++
HP aCC
- Notes de version HP aC++ A.06.28 (incluant les fonctionnalités de base du langage C++11)
- HP fournit une version de l'implémentation RogueWave STL 2.0 de la bibliothèque standard C++98
Digital Mars C++
Embarcadero C++
- État de conformité des fonctionnalités du langage (RAD Studio 10.1 Berlin), incluant les fonctionnalités C++11 prises en charge par les compilateurs hérités et les compilateurs améliorés par Clang (basés sur Clang 3.3)
- État de conformité des fonctionnalités du langage (RAD Studio 10.3 Rio), incluant les fonctionnalités C++11 prises en charge par les compilateurs hérités et les fonctionnalités C++11, C++14 et C++17 prises en charge par les compilateurs améliorés par Clang (basés sur Clang 5.0)
Cray (mis à jour 2023-02)
- Cray C and C++ Reference Manual (8.4) Pour la version 8.4, indique que l'intégralité de C++14 est prise en charge sauf alignas
- Cray C and C++ Reference Manual (8.6) Pour la version 8.6, indique que l'intégralité de C++14 est prise en charge
- Cray C and C++ Reference Manual (9.1) pour la version 9.1 n'indique pas de prise en charge au-delà de C++14
- HPE Cray Clang C and C++ Quick Reference (14.0) (S-2179) Les versions à partir de la 11 (jusqu'à au moins la 14) sont basées sur Clang, et sont généralement supposées avoir la prise en charge linguistique correspondante. Les fonctionnalités impliquant des comportements de génération de code ou de liaison 'intéressants' tels que les coroutines ou les modules peuvent être en retard, car le compilateur prend en charge la génération de code pour les GPU et autres appareils similaires limités
Portland Group (PGI) (mis à jour 2019-01)
- Notes de version pour 2016 annoncent la prise en charge de C++14, à l'exception de "constexpr généralisé et fonctions membres constexpr et const implicite, modèles de variables, clarification de l'allocation mémoire (allocation fusionnée)"
- Notes de version pour 2018
- Manuel de référence de PGI 19.1
- PGI ne fournit pas d'implémentation de la bibliothèque standard C++
Nvidia Cuda nvcc (mis à jour le 2023-01-12)
- Guide de programmation CUDA C++ (v12.0)
- Toutes les fonctionnalités du langage C++17 sont prises en charge dans nvcc version 11.0 et ultérieure, sous réserve des restrictions décrites ici
- Toutes les fonctionnalités du langage C++20 sont prises en charge dans nvcc version 12.0 et ultérieure, sous réserve des restrictions décrites ici
- NVCC ne fournit pas d'implémentation de bibliothèque standard C++
Texas Instruments (mis à jour 2018-05)
- cl430 version v18.1.0 revendique la prise en charge de C++14
Analog Devices (mis à jour 2018-05)
- CrossCore Embedded Studio 2.8.0 pour SHARC revendique la prise en charge de C++11