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

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


Fonctionnalités C++14

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

Fonctionnalités C++17

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

Voir aussi