Namespaces
Variants

Compiler support for C++26

From cppreference.net

* - 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++26

**Traductions effectuées :** - "friends" → "amis" - "Feature-testing macro" → "Macro de test de fonctionnalité" **Éléments préservés :** - Toutes les balises HTML et attributs - Les termes C++ spécifiques ("Variadic", "FTM", "__cpp_variadic_friend", "P2893R3") - Les valeurs numériques et le formatage du tableau - Les liens et leurs attributs **Traductions effectuées :** - "Structured bindings" → "Liaisons structurées" (terme technique C++ standard en français) - "can introduce a" → "peuvent introduire un" - "Feature-testing macro" → "Macro de test de fonctionnalité" **Éléments préservés :** - Toutes les balises HTML et attributs - Le terme "pack" (terme technique C++) - Les acronymes "FTM" - Les références techniques (P1061R10) - Les valeurs numériques - La mise en forme complète du tableau
Fonctionnalité C++26

Document(s)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
DR98 : Suppression du comportement indéfini lors de l'analyse lexicale P2621R3 Oui 3.3 16.0.0*
DR98 : Rendre les littéraux de chaîne non encodables mal formés P1854R4 14 14 16.0.0*
Chaînes non évaluées P2361R6 14 17 (partiel)*
18
16.0.0*
Ajout de @ , $ , et ` au jeu de caractères de base P2558R2 15 Oui 16.0.0*
constexpr conversion depuis void * ( FTM ) * P2738R1 14 17
DR20 : Sur l'ignorabilité des attributs standards P2552R3 15 Oui
DR11 : Stockage statique pour les initialiseurs entre accolades P2752R3 14
Messages générés par l'utilisateur pour static_assert ( FTM ) * P2741R3 14 17
Variables de substitution sans nom ( FTM ) * P2169R4 14 18
Indexation de paquets ( FTM ) * P2662R3 15 19
Suppression des conversions arithmétiques obsolètes sur les énumérations P2864R2 14 18
DR11/20 : Initialisation des paramètres de template P2308R1 9 18
Interdire la liaison d'une référence retournée à un temporaire P2748R5 14 19
Attributs pour structured bindings ( FTM ) * P0609R3 15 19
Comportement erroné pour lectures non initialisées , [[ indeterminate ]] attribut P2795R5
= delete ( "reason" ) ; ( FTM ) * P2573R2 15 19
Variadic amis ( FTM ) * P2893R3 15 20
DR98 : Clarification des règles pour l'élision des accolades dans l'initialisation d'agrégat P3106R1 Oui 17
DR20 : Interdire que les déclarations de module soient des macros P3034R1 15
DR11 : Les boucles infinies triviales ne sont pas un comportement indéfini P2809R3 14 19
constexpr placement new  ( FTM ) * ( FTM ) * P2747R2 15 20
Déclaration de liaison structurée comme condition  ( FTM ) * P0963R3 15 6 (partiel)*
21
Ordre des contraintes impliquant des expressions de repli ( FTM ) * P2963R3 19
Suppression d'un pointeur vers un type incomplet devrait être mal formé P3144R2 15 19 6.7
Liaisons structurées peuvent introduire un pack ( FTM ) * P1061R10 21
constexpr liaisons structurées et références aux variables constexpr P2686R5 6.7
constexpr exceptions : [1] , [2] ( FTM ) * P3068R6
Virgule variadique d'Oxford P3176R1 15 20
Suppression des comparaisons de tableaux obsolètes P2865R6 15 20
#embed ( FTM ) * P1967R14 15 19 *
Paramètres de template de concept et de variable-template  ( FTM ) * P2841R7
Déplacement trivial ( FTM ) * P2786R13 21 *
Unions triviaux  ( FTM ) * P3074R7
Points de contrôle observables P1494R5
Contrats ( FTM ) * P2900R14


Fonctionnalité C++26


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++26

**Notes sur la traduction :** - "stable sorting" a été traduit par "tri stable" (terme technique en informatique) - "Feature-testing macro" a été traduit par "Macro de test de fonctionnalité" - Les termes C++ (`constexpr`, `__cpp_lib_constexpr_algorithms`) et les références techniques (P2562R1, FTM) ont été conservés en anglais - La structure HTML et toutes les balises/attributs sont restés inchangés - Le texte dans l'attribut `title` a été traduit **Notes sur la traduction :** - `std::submdspan()` et `FTM` sont conservés tels quels (termes spécifiques C++) - Le texte dans l'attribut `title` a été traduit : "Feature-testing macro" → "Macro de test de fonctionnalité" - Les balises HTML et attributs sont préservés - Les références de documents (P2630R4, P3355R1) ne sont pas traduites - La structure et la mise en forme originales sont maintenues **Notes sur la traduction :** - `std::span::at()` et `FTM` conservés tels quels (termes C++) - Le texte dans l'attribut `title` a été traduit : "Feature-testing macro" → "Macro de test de fonctionnalité" - La structure HTML et toutes les balises préservées intactes - Les valeurs numériques et codes de version non modifiés **Explications des traductions :** - `views::concat` : conservé tel quel (terme C++ spécifique) - `FTM` : conservé tel quel (acronyme technique) - `Feature-testing macro` : traduit par "Macro de test de fonctionnalité" - Le reste du texte dans les attributs `title` a été traduit en français - Toutes les balises HTML et attributs sont préservés intacts - La structure et la mise en forme originales sont maintenues **Notes sur la traduction :** - "Padded mdspan layouts" → "Dispositions mdspan avec remplissage" (conservation du terme technique "mdspan") - "Feature-testing macro" → "Macro de test de fonctionnalité" - "FTM" conservé tel quel (acronyme technique) - Toutes les balises HTML et attributs préservés - Le code __cpp_lib_submdspan = 202403L non traduit - Le numéro de proposition P2642R6 conservé en anglais (standard technique) **Traductions effectuées :** - "range support" → "prise en charge des plages" - "Feature-testing macro" → "Macro de test de fonctionnalité" **Éléments préservés :** - Toutes les balises HTML et attributs - Le terme C++ `std::optional` - L'acronyme FTM - La référence P3168R2 - La macro `__cpp_lib_optional_range_support` - La mise en forme et structure HTML complète **Note:** La traduction n'a pas été nécessaire car le texte contenu dans cette section HTML est principalement composé de : - Balises HTML (conservées intactes) - Termes techniques C++ (`std::atomic_ref::address()`, `__cpp_lib_atomic_ref`, `P2835R7`) - Acronymes (`FTM`) - Éléments non linguistiques (caractères de ponctuation, symboles) Tous ces éléments doivent rester en anglais selon les consignes de traduction spécifiées.
Fonctionnalité C++26

Document(s)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
Test de réussite ou d'échec des fonctions <charconv> ( FTM ) * P2497R0 14 18 16.0.0*
std::text_encoding : identification des encodages de texte  ( FTM ) * P1885R12
P2862R1
14
Surcharges arithmétiques de std::to_string et std::to_wstring utilisent std::format ( FTM ) * P2587R3 14
Vérification de type des arguments de format  ( FTM ) * P2757R3 15
Formatage des pointeurs  ( FTM ) * P2510R3 14 * 17 * 19.40* *
Prise en charge du hachage pour les classes de valeur std::chrono ( FTM ) * P2592R3
<rcu> : Mise à jour par copie de lecture ( FTM ) * P2545R4
<hazard_pointer> : Pointeurs de danger ( FTM ) * P2530R3
Résistant à ADL std::projected P2538R1 14 * 18 * 19.38* * 16.0.0*
constexpr tri stable  ( FTM ) * P2562R1 15 21
Membre std::basic_format_arg::visit() ( FTM ) * P2637R3 15 19
Membre std::variant::visit() ( FTM ) * P2637R3 15 18
std::is_within_lifetime ( FTM ) * P2641R4
Extension des conteneurs associatifs avec les surcharges hétérogènes restantes  ( FTM ) * P2363R5
Permettre l'utilisation de std::weak_ptr comme clés dans les conteneurs associatifs non ordonnés  ( FTM ) * P1901R2
Poignées natives dans les flux de fichiers  ( FTM ) * P1759R6 14 18 16.0.0*
Interface des flux de chaînes avec std::string_view ( FTM ) * P2495R3 19
Interface std::bitset avec std::string_view ( FTM ) * P2697R1 18 16.0.0*
Davantage de constexpr pour <cmath> et <complex> ( FTM ) * ( FTM ) * P1383R2 4.6 (partiel)*
Ajout des nouveaux préfixes SI 2022 pour les ratios : std::quecto , std::ronto , std::ronna , et std::quetta ( FTM ) * P2734R0 14 17 *
std::function_ref : référence appelable à effacement de type  ( FTM ) * P0792R14
std::copyable_function ( FTM ) * P2548R6 16
std::bind_front , std::bind_back , et std::not_fn pour les appelables NTTP  ( FTM ) * ( FTM ) * ( FTM ) * P2714R1
std::submdspan() ( FTM ) * P2630R4
P3355R1
Langage autonome : Optionnel ::operator new P2013R5 N/A
Autonome std::char_traits , std::errc et fonctionnalités dans : <charconv> , <cstdlib> , <cstring> , <cwchar> ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2338R4 N/A
Fonctionnalités autonomes supplémentaires  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2198R7 N/A
Arithmétique de saturation ( FTM ) * P0543R3 14 18 16.0.0*
<debugging> : Support de débogage ( FTM ) * P2546R5
P2810R4
<linalg> : Une interface d'algèbre linéaire basée sur des fonctions libres reposant sur le BLAS ( FTM ) * P1673R13
P3050R2
P3222R0
Rendre la macro assert() conviviale P2264R7
Chaînes de formatage à l'exécution  ( FTM ) * P2918R2 14 18 16.0.0*
std::span sur une liste d'initialisation  ( FTM ) * P2447R6 15 18 16.0.0*
std::span::at() ( FTM ) * P2821R5 14 18 16.0.0*
Ajout du protocole tuple à std::complex ( FTM ) * P2819R2 15 19
Une nouvelle spécification pour std::generate_canonical P0952R2 19.42*
Suppression du typedef obsolète std::allocator::is_always_equal P2868R3 15 18 16.0.0*
Suppression de la surcharge de fonction de std::basic_string::reserve() ne prenant aucun argument P2870R3 18 16.0.0*
Suppression des facettes de conversion Unicode obsolètes ( <codecvt> ) P2871R3 18 16.0.0*
Autonome : suppression de std::strtok ( FTM ) * P2937R0 14 19.40*
Bibliothèque autonome : classes partielles  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2407R5 14 19.42*
Bibliothèque autonome : std::inout , std::expected , std::span ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2833R2 14 19.42*
DR23: std::basic_const_iterator devrait suivre la convertibilité de son type sous-jacent  ( FTM ) * P2836R1
P2950R0
14 19.40*
DR20 : std::make_format_args n'accepte désormais que des références à des lvalues au lieu de références universelles P2905R2 14 18 19.40* 16.0.0*
DR20: Correction du formatage des unités de code en tant qu'entiers  ( FTM ) * P2909R4 13.3 18 19.40* 16.0.0*
views::concat ( FTM ) * P2542R8 15
Concaténation de chaînes et de vues de chaînes ( FTM ) * P2591R5 15 19
Activation de l'initialisation par liste pour les algorithmes ( FTM ) * P2248R8
P3217R0
15
std::ranges::generate_random ( FTM ) * P1068R11
Comparaisons pour std::reference_wrapper , et contraintes pour les comparaisons de std::pair , std::tuple , std::optional , et std::variant ( FTM ) * ( FTM ) * P2944R3 14 19 (partiel) *
Dispositions mdspan avec remplissage  ( FTM ) * P2642R6
Nouveau CTAD pour std::span et std::mdspan avec constantes intégrales P3029R1 19
Maximum et minimum atomiques  ( FTM ) * P0493R5
std::formatter<std::filesystem::path> ( FTM ) * P2845R8
Impression de lignes vides avec std::println() ( FTM ) * P3142R0 14 * 19 * 19.41* *
Ne plus déprécier std::polymorphic_allocator::destroy P2875R4 15 19.41*
Suppression des strstreams obsolètes P2867R2 19
Suppression des API d'accès atomique obsolètes pour std::shared_ptr P2869R4
Suppression std::wstring_convert P2872R3 19
DR23: Permettre une implémentation efficace de std::print ( FTM ) * P3107R5
P3235R3
19.43*
Bibliothèque de contrôle d'exécution ( FTM ) * P2300R10
P3396R0
std::inplace_vector : vecteur redimensionnable dynamiquement avec capacité fixe  ( FTM ) * P0843R14
std::philox_engine : moteur de nombres aléatoires basé sur un compteur  ( FTM ) * P2075R6
std::optional prise en charge des plages  ( FTM ) * P3168R2
std::is_virtual_base_of : trait de type pour détecter les classes de base virtuelles  ( FTM ) * P2985R0 15 20
std::dims pour std::mdspan ( FTM ) * P2389R2 19
DR11 : Spécification formelle du type de std::ignore P2968R2 15 19 19.42*
DR20 : Suppression de l'exigence de référence commune des concepts indirectement invocables  ( FTM ) * P2997R1 15 19 19.42*
Dépréciation de std::is_trivial et std::is_trivial_v P3247R2 15 21
DR20 : Objets de fonction d'algorithmes P3136R1 Oui 14 19.39* 14.0.3*
std::ranges::cache_latest_view ( FTM ) * P3138R5 15
Contrainte des std::expected opérateurs d'égalité ( FTM ) * P3379R0 15
std::aligned_accessor : un accesseur std::mdspan exprimant le sur-alignement de pointeur  ( FTM ) * P2897R7 21
std::is_sufficiently_aligned : vérifie le précondition d'alignement d'un pointeur  ( FTM ) * P2897R7 21
std::atomic_ref::address() ( FTM ) * P2835R7
DR11/20: types avec qualificateurs cv dans std::atomic et std::atomic_ref P3323R1 19.44*
constexpr std::atomic et std::atomic_ref ( FTM ) * P3309R3
constexpr pour algorithmes de mémoire spécialisés ( FTM ) * P3508R0
P3369R0
15
<stdbit.h> et <stdckdint.h> P3370R1 15
<simd> : types parallèles de données ( FTM ) * ( FTM ) * P1928R15
P3430R3
P3441R2
P3287R3
P2663R7
P2933R4
Un utilitaire pour créer des environnements d'exécution P3325R5
constexpr pour les types d'exception, par ex. std::bad_alloc , std::bad_cast etc.  ( FTM ) * P3068R6
P3378R2
Traits et opérations de relocalisation triviale  ( FTM ) * P2786R13
Défanger et déprécier std::memory_order::consume P3475R1
Placer std::monostate dans <utility> P0472R3 15 21 19.50*
std::indirect ( FTM ) * P3019R14
std::polymorphic ( FTM ) * P3019R14
Davantage de constexpr pour les conteneurs et adaptateurs de conteneurs :

std::deque , std::flat_map , std::flat_multimap , std::flat_set , std::flat_multiset , std::forward_list , std::list , std::map , std::multimap , std::queue , std::priority_queue , std::set , std::multiset , std::stack , std::unordered_map , std::unordered_multimap , std::unordered_set , et std::unordered_multiset
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *

P3372R3
constexpr std::inplace_vector pour les types non triviaux  ( FTM ) * P3074R7
std::ranges::to_input_view ( FTM ) * P3137R3 15
std::ranges::approximately_sized_range et std::ranges::reserve_hint ( FTM ) * P2846R6
<hive> : Un conteneur basé sur des compartiments qui réutilise les emplacements mémoire des éléments effacés  ( FTM ) * P0447R28
<contracts> : Prise en charge de la gestion des violations de contrat  ( FTM ) * P2900R14
Durcissement de la bibliothèque standard  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P3471R4 15 (partiel)* 19.44* (partiel)*
Bibliothèque autonome : <algorithm> , <numeric> , <random> , ( <execution> , <memory> )
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *
P2976R1
DR20 : Conversion des itérateurs contigus en pointeurs P3349R0 15


Fonctionnalité C++26


Document(s)
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*