Support du compilateur pour C++29
De fr.cppreference.net
* - survolez une cellule marquée d'une étoile * pour voir des notes contextuelles supplémentaires.
DRnn - 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 du langage fondamental C++29
| Fonctionnalité C++29 |
Document(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
#embed paramètre décalage (FTM)*
|
P3540R3 | ||||||||||
| Contrats pour fonctions virtuelles (FTM)* | P3097R3 | ||||||||||
| Indexation de paquets pour les templates (FTM)* | P3670R4 | ||||||||||
| Initialisateurs désignés pour les classes de base (FTM)* | P2287R6 | ||||||||||
| Les fonctions de désallocation avec spécification d'exception levante sont mal formées | P3424R2 | ||||||||||
| Spécificateurs noexcept conditionnels dans exigences composées (FTM)* | P3822R2 | ||||||||||
| Définition par défaut des fonctions opérateur d'incrémentation et de décrémentation postfixe | P3668R4 | ||||||||||
| Ajout de restrictions aux fonctions opérateur d'affectation par défaut | P2953R5 | ||||||||||
| DR26 : valeurs consteval uniquement (FTM)* | P4101R1 | ||||||||||
| DR23 : Autorisation de figment et d'abréviation dans échappements de caractères universels nommés | P3733R1 | ||||||||||
| DR20 : Suppression de l'exclusivité mutuelle pour fonctions de retour de promesse de coroutine (FTM)* | P3950R1 | ||||||||||
| DR : Ajustement de l'identifiant suite aux nouvelles recommandations Unicode | P3658R1 | ||||||||||
| DR : Capture lambda explicite est déclarée et initialisée dans l'ordre lexical | P3847R1 | 3.1 | |||||||||
| DR : Autorisation de la liaison de langage C pour les templates | P2243R0 | ||||||||||
| DR : Clarification du comportement du débordement en virgule flottante | P3899R3 | ||||||||||
| DR : Provenance non déterministe des pointeurs | P2434R5 | ||||||||||
| DR : Résolution du zap de fin de durée de vie des pointeurs pour les accès atomiques et volatiles | P2414R12 | ||||||||||
| DR : Définition des opérations de chargement et de stockage pour les pointeurs invalides | P3347R6 | ||||||||||
| Fonctionnalité C++29 |
Document(s) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
Fonctionnalités de la bibliothèque C++29
| Fonctionnalité C++29 |
Document(s) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
|
|---|---|---|---|---|---|---|
| Meilleure fonction de recherche pour les conteneurs map (FTM)* | P3091R6 | |||||
| Étiquetage de pointeur (FTM)* | P3125R6 | |||||
| Attributs de thread (FTM)* | P2019R9 | |||||
| Lots de pointeurs de danger (FTM)* | P3428R4 | |||||
| Permutations de bits (FTM)* (FTM)* | P3104R6 P3772R2 |
|||||
| std::shl et std::shr (FTM)* (FTM)* | P3793R2 | |||||
| std::mdspan opérations de copie et de remplissage (FTM)* | P3242R4 | |||||
| std::simd::iota (FTM)* | P3319R6 | |||||
| std::expected::has_error() (FTM)* | P3798R1 | |||||
| view_interface::at() (FTM)* | P3052R2 | |||||
| std::formatter<std::error_code> | P3395R6 | |||||
| Correction de la représentation par défaut en virgule flottante dans std::to_chars (FTM)* | P3505R4 | |||||
| Exiger std::intptr_t et std::uintptr_t | P3248R5 | |||||
| Dépréciation des types de caractères signés dans les flux d'E/S | P3154R3 | |||||
| DR26 : Rétablissement du support des littéraux de chaîne dans std::constant_wrapper (FTM)* | P4206R0 | 17 | ||||
| Fonctionnalité C++29 |
Document(s) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |