Statut de conformité des fonctionnalités du langage C++ moderne

De RAD Studio
Aller à : navigation, rechercher

Remonter à C++ moderne


Voici ci-dessous la liste des fonctionnalités du C++ moderne qui sont prises en charge par les compilateurs C++ de RAD Studio.

Fonctionnalités C++17

Fonctionnalité Document de proposition C++17 BCC32C/X BCC64
Nouvelles règles relatives à auto pour direct-list-initialization N3922
Checkmark.svg
Checkmark.svg
static_assert sans message N3928
Checkmark.svg
Checkmark.svg
typename dans un paramètre template template N4051
Checkmark.svg
Checkmark.svg
Suppression des trigraphes N4086
Checkmark.svg
Checkmark.svg
Définition d'espaces de nommage imbriqués N4230
Checkmark.svg
Checkmark.svg
Attributs pour espaces de nommages et énumérateurs N4266
Checkmark.svg
Checkmark.svg
Littéraux caractères u8 N4267
Checkmark.svg
Checkmark.svg
Autoriser l'évaluation de constante pour tous les arguments template sans type N4268
Checkmark.svg
Checkmark.svg
Expressions fold N4295
Checkmark.svg
Checkmark.svg
Suppression du mot clé register devenu obsolète P0001R1
Checkmark.svg
Checkmark.svg
Suppression de l'opérateur ++(bool) obsolète P0002R1
Checkmark.svg
Checkmark.svg
Suppression de spécifications d'exceptions obsolètes dans C++17 P0003R5
Checkmark.svg
Checkmark.svg
Inclure les spécifications d'exception dans le système de type P0012R1
Checkmark.svg
Checkmark.svg
Initialisation des agrégats de classes avec les classes de base P0017R1
Checkmark.svg
Checkmark.svg
Capture lambda de *this P0018R3
Checkmark.svg
Checkmark.svg
Utilisation des espaces de nommage des attributs sans répétition P0028R4
Checkmark.svg
Checkmark.svg
Allocation mémoire dynamique pour des données sur-alignées P0035R4
Checkmark.svg
Checkmark.svg
Expressions fold unaires et packs de paramètres vides P0036R0
Checkmark.svg
Checkmark.svg
__has_include dans les conditions du préprocesseur P0061R1
Checkmark.svg
Checkmark.svg
Déduction d'arguments de template pour les templates de classes P0091R3
Checkmark.svg
Checkmark.svg
Paramètres de template sans type avec le type auto P0127R2
Checkmark.svg
Checkmark.svg
Elision de copie garantie P0135R1
Checkmark.svg
Checkmark.svg
Nouvelle spécification pour l'héritage des constructeurs (DR1941 et al) P0136R1
Checkmark.svg
Checkmark.svg
Remplacement des objets de classe contenant des membres de référence P0137R1
Direct-list-initialization des énumérations P0138R2
Checkmark.svg
Checkmark.svg
Ordre d'évaluation des expressions plus strict P0145R3
Checkmark.svg
Checkmark.svg
Expressions lambda constexpr P0170R1
Checkmark.svg
Checkmark.svg
Types begin et end différents dans les boucles for basées sur un intervalle P0184R0
Checkmark.svg
Checkmark.svg
Attribut [[fallthrough]] P0188R1
Checkmark.svg
Checkmark.svg
Attribut [[nodiscard]] P0189R1
Checkmark.svg
Checkmark.svg
Extensions de packs dans les déclarations using P0195R2
Checkmark.svg
Checkmark.svg
Attribut [[maybe_unused]] P0212R1
Checkmark.svg
Checkmark.svg
Liaisons structurées P0217R3
Checkmark.svg
Checkmark.svg
Littéraux hexadécimaux à virgule flottante P0245R1
Checkmark.svg
Checkmark.svg
Ignorer les attributs inconnus P0283R2
Checkmark.svg
Checkmark.svg
Instructions if constexpr P0292R2
Checkmark.svg
Checkmark.svg
Instructions init pour if et switch P0305R1
Checkmark.svg
Checkmark.svg
Variables inline P0386R2
Checkmark.svg
Checkmark.svg
DR : La mise en correspondance d'arguments template template exclut les templates compatibles P0522R0
Checkmark.svg
Checkmark.svg
std::uncaught_exceptions() N4259
Checkmark.svg
Checkmark.svg
Amélioration de std::pair et std::tuple N4387
Checkmark.svg
Checkmark.svg
std::any P0220R1
Checkmark.svg
Checkmark.svg
std::variant P0088R3
Checkmark.svg
Checkmark.svg
std::optional P0220R1
Checkmark.svg
Checkmark.svg
std::shared_mutex (untimed) N4508
Checkmark.svg
Checkmark.svg
std::string_view N3921
Checkmark.svg
Checkmark.svg
Standardisation du parallélisme TS P0024R2
Conversions de chaînes élémentaires P0067R5
Fonctions mathématiques spéciales P0226R1
Checkmark.svg
Checkmark.svg
Transferts d'ensembles et de cartes P0083R3
Taille d'interférence matérielle P0154R1
std::filesystem P0218R1
Checkmark.svg
Checkmark.svg
std::byte P0298R3
Checkmark.svg
Checkmark.svg

Fonctionnalités C++14

Fonctionnalité Document de proposition C++14 BCC32C/X BCC64
Formulation ajustée pour les conversions textuelles N3323
Checkmark.svg
Checkmark.svg
Littéraux binaires N3472
Checkmark.svg
Checkmark.svg
decltype(auto), déduction du type de retour pour les fonctions normales N3638
Checkmark.svg
Checkmark.svg
Captures lamba initilisées/généralisées (init-capture) N3648
Checkmark.svg
Checkmark.svg
Expressions lambda (polymorphiques) génériques N3649
Checkmark.svg
Checkmark.svg
Templates de variables N3651
Checkmark.svg
Checkmark.svg
Constexpr étendu N3652
Checkmark.svg
Checkmark.svg
Initialiseurs de membres et agrégats (NSDMI) N3653
Checkmark.svg
Checkmark.svg
Clarification de l'allocation mémoire (en évitant/fusionnant les allocations) N3664
Checkmark.svg
Checkmark.svg
Attribut [[deprecated]] N3760
Checkmark.svg
Checkmark.svg
Désallocation dimensionnée N3768
Checkmark.svg
Checkmark.svg
Guillemet simple utilisé comme séparateur numérique N3781
Checkmark.svg
Checkmark.svg
std::result_of et SFINAE N3462
Checkmark.svg
Checkmark.svg
constexpr pour <complex> N3302
Checkmark.svg
Checkmark.svg
constexpr pour <chrono> N3469
Checkmark.svg
Checkmark.svg
constexpr pour <array> N3470
Checkmark.svg
Checkmark.svg
constexpr pour <initializer_list>, <utility> et <tuple> N3471
Checkmark.svg
Checkmark.svg
Amélioration de std::integral_constant N3545
Checkmark.svg
Checkmark.svg
Littéraux définis par l'utilisateur pour <chrono> et <string> N3642
Checkmark.svg
Checkmark.svg
Itérateurs forward null N3644
Checkmark.svg
Checkmark.svg
std::quoted N3654
Checkmark.svg
Checkmark.svg
Recherche associative hétérogène N3657
Checkmark.svg
Checkmark.svg
std::integer_sequence N3658
Checkmark.svg
Checkmark.svg
std::shared_timed_mutex N3659
Checkmark.svg
Checkmark.svg
std::exchange N3668
Checkmark.svg
Checkmark.svg
Résolution des fonctions membre constexpr sans const N3669
Checkmark.svg
Checkmark.svg
std::get<T>() N3670
Checkmark.svg
Checkmark.svg
std::equal, std::is_permutation, std::mismatch à double plage N3671
Checkmark.svg
Checkmark.svg

Fonctionnalités C++11


Fonctionnalité Document de
proposition C++11
BCC32C/X BCC32 BCC64 BCCOSX BCCIOSARM BCCIOSARM64 BCCAARM
Références rvalue N2118
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Références rvalue pour *this N2439
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Initialisation des objets de classe par rvalues N1610
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Initialiseurs de membres de données non statiques N2756
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Templates variadic N2242
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Extension des paramètres template de modèle variadic N2555
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Liste d'initialiseurs N2672
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Assertions statiques N1720
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Variables auto-typées N1984
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Multi-déclarateur auto N1737
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Suppression de auto comme spécificateur de classe de stockage N2546
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Nouvelle syntaxe de déclarateur de fonction N2541
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Expressions lambda N2927
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Type déclaré d'une expression N2343
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
    Types de retour incomplets N3276
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Crochets droits N1757
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Arguments de template par défaut pour les templates de fonctions DR226
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Résolution du problème SFINAE pour les expressions DR339
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Templates d'alias N2258
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Templates extern N1987
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Constante pointeur null N2431
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Enumérations fortement typées N2347
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Déclaration forward des énumérations N2764
DR1206
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Syntaxe des attributs standardisés N2761
Checkmark.svg
Expressions constantes généralisées N2235
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Support de l'alignement N2341
Checkmark.svg
Comportement support conditionnel N1627
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Changement du comportement non défini en erreurs diagnosticables N1727
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Délégation de constructeurs N1986
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Constructeurs d'héritage N2540
Checkmark.svg
Opérateurs de conversion explicite N2437
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Nouveaux types de caractères N2249
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Littéraux chaîne Unicode N2442
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Littéraux chaîne brute N2442
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Noms de caractères universels dans les littéraux N2170
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Littéraux définis par l'utilisateur N2765
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Types de disposition standard N2342
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Fonctions par défaut N2346
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Fonctions supprimées N2346
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Déclarations friend étendues N1791
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Extension de sizeof N2253
DR850
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Espaces de nommage inline N2535
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Unions non restreintes N2544
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Types locaux et non nommés comme arguments de template N2657
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Boucle for basée sur l'étendue N2930
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Redéfinitions explicites de virtual N2928
N3206
N3272
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Support minimal du nettoyage de la mémoire et de la détection de perte basée sur l'accessibilité N2670
Autoriser les constructeurs de déplacement à déclencher une exception [noexcept] N3050
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Définition de fonctions membre spéciales de déplacement N3053
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Accès concurrent
Points de séquence N2239
Checkmark.svg
Opérations atomiques N2427
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Opération comparer-échanger forte N2748
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Délimitations bidirectionnelles N2752
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Modèle de mémoire N2429
Checkmark.svg
Ordre dépendant des données : opérations atomiques et modèle de mémoire N2664
Checkmark.svg
Propagation des exceptions N2179
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Autoriser l'usage des opérations atomiques dans les gestionnaires de signaux N2547
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Stockage local des threads N2659
Checkmark.svg
Initialisation dynamique et destruction avec accès concurrent N2660
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Fonctionnalités C99 dans C++11
Identificateur prédéfini __func__ N2340
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Préprocesseur C99 N1653
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Type long long N1811
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Types intégraux étendus N1988
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg
Checkmark.svg

Voir aussi