Namespaces
Variants

C++11

Depuis fr.cppreference.net
< cpp

C++11 est la deuxième version majeure de C++ et la mise à jour la plus importante depuis C++98. Un grand nombre de modifications ont été introduites à la fois pour normaliser les pratiques existantes et pour améliorer les abstractions disponibles pour les programmeurs C++.

Avant d'être finalement approuvé par l'ISO le 12 août 2011, le nom 'C++0x' était utilisé car il était prévu qu'il soit publié avant 2010. Il a fallu 8 ans entre C++03 et C++11, ce qui en fait le plus long intervalle entre deux versions jusqu'à présent. Depuis, actuellement, C++ est mis à jour tous les 3 ans régulièrement.

Les fonctionnalités suivantes ont été fusionnées dans C++11 :

Fonctionnalités du langage de base

Fonctionnalités de la bibliothèque

En-têtes

Fonctionnalités de la bibliothèque

  • std::all_of, std::any_of, std::none_of,
  • std::find_if_not,
  • std::copy_if, std::copy_n,
  • std::move, std::move_backward,
  • std::random_shuffle, std::shuffle,
  • std::is_partitioned, std::partition_copy, std::partition_point,
  • std::is_sorted, std::is_sorted_until,
  • std::is_heap, std::is_heap_until,
  • std::minmax, std::minmax_element,
  • std::is_permutation,
  • std::iota,
  • std::uninitialized_copy_n
  • std::begin
  • std::end
  • std::next
  • std::prev

Rapports de défauts

Rapports de défauts corrigés dans C++11 (741 cœur, 868 bibliothèque)
  1. 1.0 1.1 1.2 La résolution de ces défauts a ajouté les fonctions membres suivantes, mais elles ne sont pas disponibles dans le mode C++98 de libstdc++ :

Support des compilateurs

Fonctionnalités 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++
Préprocesseur C99 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
Crochets angulaires 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
Prise en charge 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 modèles  (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 enum fortement typées 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 (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 (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 en ligne 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 suffixés 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 restreintes 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 sans nom comme paramètres de modèle 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 et destruction dynamiques avec concurrence (statiques magiques)  (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
Détection de fuites basée sur l'accessibilité et collecte des ordures 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 données membres 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 enumanticipées (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 sur des rvalues  (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 par 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 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 des expressions régulières N1429 4.9 2.8 Oui Oui  17.1.0
Traits 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
Détection de fuites basée sur l'accessibilité et collecte des ordures (support de la bibliothèque) N2670 6 (sans opération)*
3.4
(sans opération)*
19.0 (2015)*
(sans opération)*
Oui
(sans opération)*
17.1.0  
Manipulateurs I/O monétaires, temporels et hexfloat
N2071 N2072
5
3.8 19.0 (2015)* Oui 17.1.0   5.15 Interdiction du
COW (copie sur écriture)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*
*

- survolez une cellule marquée d'une étoile * pour voir des notes contextuelles supplémentaires.
DRnn - le nombre nn après "DR" indique la révision C++ cible à laquelle le rapport de défaut s'applique, par exemple DR20 → C++20.

Liens externes

1.  C++11 - Wikipédia
2.  Exemples C++11 fonctionnels