Compiler support for C++11
From cppreference.net
<
cpp
|
compiler support
*
- survolez une cellule marquée d'une étoile
*
pour voir des notes contextuelles supplémentaires.
DR
nn
- le nombre
nn
après "DR" désigne la révision C++ cible à laquelle le Rapport de Défaut est appliqué, par exemple, DR20 → C++20.
Fonctionnalités fondamentales du langage C++11
|
Fonctionnalité C++11
|
Document(s)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Embarcadero C++ Builder
|
IBM Open XL C++ for AIX
|
IBM Open XL C++ for z/OS
|
IBM XL C++
|
Sun/Oracle C++
|
HP aCC
|
Digital Mars C++
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C99 préprocesseur | N1653 | 4.3 | Oui |
19.0 (2015)*
(partiel)*
19.26* |
Oui | 4.1 | 11.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 10.1 | 5.9 | A.06.25 | Oui | |
| static_assert ( FTM ) * | N1720 | 4.3 | 2.9 | 16.0* | Oui | 4.1 | 11.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | 8.52 | |
| Chevrons droits | N1757 | 4.3 | Oui | 14.0* | Oui | 4.1 | 11.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | |||
| Déclarations friend étendues | N1791 | 4.7 | 2.9 | 16.0* | Oui | 4.1 |
11.1 (partiel)
12.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
long long
|
N1811 | Oui | Oui | 14.0* | Oui | Oui | Oui | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | Oui | Oui | Oui | Oui | |
| auto | N1984 | 4.4 | Oui | 16.0* | Oui | 3.9 |
11.0
(partiel)*
12.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
| Constructeurs délégués ( FTM ) * | N1986 | 4.7 | 3.0 | 18.0* | Oui | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.28 | ||
| extern template | N1987 | 3.3 | Oui | 12.0* | Oui | 3.9 | 9.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
| constexpr ( FTM ) * | N2235 | 4.6 | 3.1 | 19.0 (2015)* | Oui | 4.6 |
13.0 (partiel)
14.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 |
12.1 (partiel)
13.1 |
5.13 | A.06.28 | ||
char16_t
et
char32_t
(
FTM
)
*
|
N2249 | 4.4 | 2.9 | 19.0 (2015)* | Oui | 4.4 |
12.1 (partiel)*
14.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | 8.52 | |
| Support du compilateur pour les traits de type . N2255* |
N2255
N2984 N3142 |
4.3 (partiel)*
4.8 (partiel)* 5 |
3.0 |
14.0*
(partiel)* 19.0 (2015)* |
Oui | 4.0 | 10.0 | 2015 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.3 | 5.13 | 6.16 | |||
| Alias de templates ( FTM ) * | N2258 | 4.7 | 3.0 | 18.0* | Oui | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | ||
| alignas | N2341 | 4.8 | 3.0 | 19.0 (2015)* | Oui | 4.8 | 15.0 | 2015 | 7.0 | 8.6 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | |||
| alignof | N2341 | 4.5 | 2.9 | 19.0 (2015)* | Oui | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | |||
| Fonctions par défaut et supprimées | N2346 | 4.4 | 3.0 | 18.0* | Oui | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1 | 5.13 | A.06.25 | ||
Énumérations fortement typées
enum
|
N2347 | 4.4 | 2.9 |
16.0*
(partiel)
17.0* |
Oui | 4.0 | 13.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.25 | ||
| Opérations atomiques | N2427 | 4.4 | 3.1 | 17.0* | Oui | Oui | 13.0 | 2015 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.14 | ||||
| nullptr | N2431 | 4.6 | 2.9 | 16.0* | Oui | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1 | 5.13 | A.06.27 | 8.52 | |
| Opérateurs de conversion explicites | N2437 | 4.5 | 3.0 | 18.0* | Oui | 4.4 | 13.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.27 | ||
| qualificateurs de référence ( FTM ) * | N2439 | 4.8.1 | 2.9 | 19.0 (2015)* | Oui | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| Littéraux de chaîne Unicode string literals ( FTM ) * | N2442 | 4.4 | 3.0 | 19.0 (2015)* | Oui | 4.7 | 11.0* | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 |
10.1*
13.1.1* |
5.7 | A.06.28 | 8.52 | |
| Littéraux de chaîne bruts string literals ( FTM ) * | N2442 | 4.5 | Oui | 18.0* | Oui | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1, sauf AIX xlC 13.1.3* | 5.13 | A.06.28 | 8.52 | |
| Espaces de noms inline | N2535 | 4.4 | 2.9 | 19.0 (2015)* | Oui | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.28 | ||
| Constructeurs hérités ( FTM ) * | N2540 | 4.8 | 3.3 | 19.0 (2015)* | Oui | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | |||
| Types de retour de fonction en suffixe | N2541 | 4.4 | 2.9 | 16.0* | Oui | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.27 | ||
| Unions non restreints union s | N2544 | 4.6 | 3.0 | 19.0 (2015)* | Oui | 4.6 | 14.0* | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| Modèles variadiques ( FTM ) * |
N2242
N2555 |
4.3
(partiel)*
4.4 |
2.9 | 18.0* | Oui |
4.3
(partiel)*
4.3 |
12.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 (partiel)* | 5.13 | A.06.27 | ||
| Expression SFINAE | N2634 | 4.4 | 2.9 | 19.14* | Oui | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | |||||
| Types locaux et non nommés comme paramètres de template | N2657 | 4.5 | 2.9 | 16.0* | Oui | 4.2 | 12.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.27 | ||
| Stockage local au thread | N2659 |
4.4 (partiel)
4.8 |
3.3* |
16.0*
(partiel)
19.0 (2015)* |
Oui | 4.8 |
11.1 (partiel)
15.0* |
2015 | 8.4 | Oui | 17.1.0 | 1.1.0 |
10.1 (partiel)*
13.1.2 (partiel)* |
5.9 (partiel) | 8.52 (partiel) | |||
| Initialisation dynamique et destruction avec concurrence ( magic statics ) ( FTM ) * | N2660 | 4.3 | 2.9 | 19.0 (2015)* | Oui | Oui | 11.1* | 2015 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.25 | |||
| Garbage Collection et Détection de Fuites Basée sur l'Accessibilité | N2670 | |||||||||||||||||
| Listes d'initialisation ( FTM ) * | N2672 | 4.4 | 3.1 | 18.0* | Oui | 4.5 |
13.0 (partiel)
14.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| Initialiseurs de membres de données non statiques ( FTM ) * | N2756 | 4.7 | 3.0 | 18.0* | Oui | 4.6 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
Attributs
,
[[
noreturn
]]
(
FTM
)
*
|
N2761 | 4.8 | 3.3 | 19.0 (2015)* | Oui | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | ||
[[
carries_dependency
]]
|
N2556
N2643 |
3.3* | 17.1.0* | |||||||||||||||
Déclarations
enum
forward (opaques)
|
N2764 | 4.6 | 3.1 | 17.0* | Oui | 4.5 |
11.1 (partiel)
14.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | |||
| Littéraux définis par l'utilisateur ( FTM ) * | N2765 | 4.7 | 3.1 | 19.0 (2015)* | Oui | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.14 | |||
| Références rvalue ( FTM ) * |
N2118
N2844 CWG1138 |
4.3
(partiel)*
4.5 |
2.9 |
16.0*
(partiel)*
17.0* |
Oui | 4.5 |
11.1
(partiel)*
12.0 (partiel)* 14.0 |
2015 | 7.0* | 8.4 | Oui | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.25 | ||
| Expressions lambda ( FTM ) * |
N2550
N2658 N2927 |
4.5 | 3.1 |
16.0*
(partiel)*
17.0* |
Oui | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.25 | ||
| Boucle for basée sur une plage ( FTM ) * |
N2930
N3271 |
4.6 | 3.0 | 17.0* | Oui | 4.5 | 13.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| noexcept | N3050 | 4.6 | 3.0 | 19.0 (2015)* | Oui | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.28 | ||
| Fonctions membres spéciales de déplacement par défaut spéciales membres fonctions | N3053 | 4.6 | 3.0 | 19.0 (2015)* | Oui | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 5.13 | A.06.25 | |||
| override et final |
N2928
N3206 N3272 |
4.7 | 2.9 |
14.0*
(partiel)
17.0* |
Oui | 4.8 |
12.0
(partiel)*
14.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | |||
| decltype ( FTM ) * |
N2343
N3276 |
4.3
(partiel)*
4.8.1 |
2.9 |
16.0*
(partiel)*
17.0* |
Oui |
4.2
(partiel)*
4.8 |
11.0
(partiel)*
12.0 |
2015 | 7.0 | 8.4 | Oui | 17.1.0 | 1.1.0 | 11.1 (partiel)* | 5.13 | A.06.25 | 8.52 (partiel)* | |
|
Fonctionnalité C++11 |
Document(s) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Embarcadero C++ Builder
|
IBM Open XL C++ for AIX
|
IBM Open XL C++ for z/OS
|
IBM XL C++
|
Sun/Oracle C++
|
HP aCC
|
Digital Mars C++
|
Fonctionnalités de la bibliothèque C++11
|
Fonctionnalité C++11
|
Document(s)
|
GCC libstdc++
|
Clang libc++
|
MSVC STL
|
Apple Clang*
|
IBM Open XL C/C++ for AIX*
|
Sun/Oracle C++*
|
Embarcadero C++ Builder*
|
|
|---|---|---|---|---|---|---|---|---|---|
| Bibliothèque d'expressions régulières | N1429 | 4.9 | 2.8 | Oui | Oui | 17.1.0 | |||
| Caractéristiques de type . N1836* |
N1836
N2240 N2244 N2255 N2342 N2984 N3142 |
4.3 (partiel)*
4.8 (partiel)* 5 |
3.0 |
14.0*
(partiel)* 19.0 (2015)* |
Oui | 17.1.0 | 5.13 | Oui | |
Fonctions membres
cbegin
,
cend
,
crbegin
, et
crend
des conteneurs
|
N1913
LWG1192 |
4.3
(partiel)*
4.5 |
Oui* | 16.0* | Oui* | 17.1.0 | |||
| Garbage Collection et Détection de Fuites Basée sur l'Accessibilité ( support de bibliothèque ) | N2670 |
6
(no-op)* |
3.4
(no-op)* |
19.0 (2015)*
(no-op)* |
Oui
(no-op)* |
17.1.0 | |||
| Manipulateurs d'E/S monétaires, temporels et hexadécimaux |
N2071
N2072 |
5 | 3.8 | 19.0 (2015)* | Oui | 17.1.0 | 5.15 | ||
| Interdiction des COW (copy-on-write) std::basic_string | N2668 | 5 | Oui | Oui | Oui | 17.1.0 | Oui | ||
|
Fonctionnalité C++11 |
Document(s) |
GCC libstdc++
|
Clang libc++
|
MSVC STL
|
Apple Clang*
|
IBM Open XL C/C++ for AIX*
|
Sun/Oracle C++*
|
Embarcadero C++ Builder*
|