Konformitätsstatus moderner C++-Sprach-Features

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Modernes C++


Im folgenden finden Sie die modernen C++-Features, die von den RAD Studio-Compilern für C++ unterstützt werden.

C++17-Features

Feature C++17-Vorschlagsdokument BCC32C/X BCC64
Neue auto-Regeln für direct-list-initialization N3922
Allowed.png
Allowed.png
static_assert ohne Meldung N3928
Allowed.png
Allowed.png
typename in einem template-Template-Parameter N4051
Allowed.png
Allowed.png
Entfernen von Trigraphs N4086
Allowed.png
Allowed.png
Verschachtelte Namespace-Definition N4230
Allowed.png
Allowed.png
Attribute für Namespaces und Aufzählungen N4266
Allowed.png
Allowed.png
u8-Zeichenliterale N4267
Allowed.png
Allowed.png
Konstantenauswertung für alle Argumente ohne Typ zulassen N4268
Allowed.png
Allowed.png
Fold-Ausdrücke N4295
Allowed.png
Allowed.png
Veraltete Verwendung des Schlüsselworts register entfernen P0001R1
Allowed.png
Allowed.png
Veraltetes operator++(bool) entfernen P0002R1
Allowed.png
Allowed.png
Entfernen veralteter Exception-Spezifikationen aus C++17 P0003R5
Allowed.png
Allowed.png
Exception-Spezifikationen in das Typsystem aufnehmen P0012R1
Allowed.png
Allowed.png
Aggregatinitialisierung von Klassen mit Basisklassen P0017R1
Allowed.png
Allowed.png
Lambda-Erfassung von *this P0018R3
Allowed.png
Allowed.png
Verwenden von Attribut-Namespaces ohne Wiederholung P0028R4
Allowed.png
Allowed.png
Dynamische Speicherzuweisung für über-ausgerichtete Daten P0035R4
Allowed.png
Allowed.png
Unäre fold-Ausrücke und leere Parameterpakete P0036R0
Allowed.png
Allowed.png
__has_include in Präprozessorbedingungen P0061R1
Allowed.png
Allowed.png
Template-Argumentableitung für Klassen-Templates P0091R3
Allowed.png
Allowed.png
Template-Parameter ohne Typ mit dem Typ "auto" P0127R2
Allowed.png
Allowed.png
Garantierte Kopierauslassung P0135R1
Allowed.png
Allowed.png
Neue Spezifikation für die Vererbung von Konstruktoren (DR1941 et al) P0136R1
Allowed.png
Allowed.png
Ersatz von Klassenobjekten, die Referenz-Member enthalten P0137R1
Direct-list-initialization von Aufzählungen P0138R2
Allowed.png
Allowed.png
Striktere Reihenfolge bei Ausdrucksauswertungen P0145R3
Allowed.png
Allowed.png
constexpr lambda-Ausdrücke P0170R1
Allowed.png
Allowed.png
Abweichende begin- und end-Typen im bereichsbasierten for P0184R0
Allowed.png
Allowed.png
Attribut [[fallthrough]] P0188R1
Allowed.png
Allowed.png
Attribut [[nodiscard]] P0189R1
Allowed.png
Allowed.png
Paketerweiterungen in using-Deklarationen P0195R2
Allowed.png
Allowed.png
Attribut [[maybe_unused]] P0212R1
Allowed.png
Allowed.png
Strukturierte Bindungen P0217R3
Allowed.png
Allowed.png
Hexadezimale Gleitkommaliterale P0245R1
Allowed.png
Allowed.png
Unbekannte Attribute ignorieren P0283R2
Allowed.png
Allowed.png
constexpr if-Anweisungen P0292R2
Allowed.png
Allowed.png
init-Anweisungen für if und switch P0305R1
Allowed.png
Allowed.png
Inline-Variablen P0386R2
Allowed.png
Allowed.png
DR: Abgleich von template-Template-Argumenten schließen kompatible Templates aus P0522R0
Allowed.png
Allowed.png
std::uncaught_exceptions() N4259
Allowed.png
Allowed.png
Verbessertes std::pair und std::tuple N4387
Allowed.png
Allowed.png
std::any P0220R1
Allowed.png
Allowed.png
std::variant P0088R3
Allowed.png
Allowed.png
std::optional P0220R1
Allowed.png
Allowed.png
std::shared_mutex (untimed) N4508
Allowed.png
Allowed.png
std::string_view N3921
Allowed.png
Allowed.png
Standardisierung des Parallelismus TS P0024R2
Elementare String-Konvertierungen P0067R5
Mathematische Sonderfunktionen P0226R1
Allowed.png
Allowed.png
Verbinden von Karten und Sets P0083R3
Hardware-Interferenzgröße P0154R1
std::filesystem P0218R1
Allowed.png
Allowed.png
std::byte P0298R3
Allowed.png
Allowed.png

C++14-Features

Feature C++14-Vorschlagsdokument BCC32C/X BCC64
Optimierte Formulierungen für kontextabhängige Konvertierungen N3323
Allowed.png
Allowed.png
Binäre Literale N3472
Allowed.png
Allowed.png
decltype(auto), Rückgabetypableitung für normale Funktionen N3638
Allowed.png
Allowed.png
Initialisierte/Generalisierte Lambda-Erfassung (init-capture) N3648
Allowed.png
Allowed.png
Generische (polymorphe) Lambda-Ausdrücke N3649
Allowed.png
Allowed.png
Variablen-Templates N3651
Allowed.png
Allowed.png
Erweitertes constexpr N3652
Allowed.png
Allowed.png
Member-Initialisierer und Aggregate (NSDMI) N3653
Allowed.png
Allowed.png
Klären der Speicherzuordnung (Zuweisungen verhindern/zusammenführen) N3664
Allowed.png
Allowed.png
Attribut [[deprecated]] N3760
Allowed.png
Allowed.png
Größenabhängige Freigabe N3768
Allowed.png
Allowed.png
Einfaches Anführungszeichen als Zifferntrenner N3781
Allowed.png
Allowed.png
std::result_of und SFINAE N3462
Allowed.png
Allowed.png
constexpr für <complex> N3302
Allowed.png
Allowed.png
constexpr für <chrono> N3469
Allowed.png
Allowed.png
constexpr für <array> N3470
Allowed.png
Allowed.png
constexpr für <initializer_list>, <utility> und <tuple> N3471
Allowed.png
Allowed.png
Verbessertes std::integral_constant N3545
Allowed.png
Allowed.png
Benutzerdefinierte Literale für <chrono> und <string> N3642
Allowed.png
Allowed.png
Null-Forward-Iteratoren N3644
Allowed.png
Allowed.png
std::quoted N3654
Allowed.png
Allowed.png
Heterogene assoziative Suche N3657
Allowed.png
Allowed.png
std::integer_sequence N3658
Allowed.png
Allowed.png
std::shared_timed_mutex N3659
Allowed.png
Allowed.png
std::exchange N3668
Allowed.png
Allowed.png
Festlegen der constexpr-Member-Funktionen ohne const N3669
Allowed.png
Allowed.png
std::get<T>() N3670
Allowed.png
Allowed.png
std::equal, std::is_permutation, std::mismatch im Dualbereich N3671
Allowed.png
Allowed.png

C++11-Features

Feature C++11-Vorschlags-
dokument
BCC32C/X BCC32 BCC64 BCCOSX BCCIOSARM BCCIOSARM64 BCCAARM
R-Wert-Referenzen N2118
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    R-Wert-Referenzen für *this N2439
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Initialisierung von Klassenobjekten durch R-Werte N1610
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Initialisierung von nicht-statischen Daten-Membern N2756
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Variadische Templates N2242
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    Erweitern von Template-Parametern variadischer Templates N2555
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Initialisierungslisten N2672
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Statische Assertions N1720
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
auto-typisierte Variablen N1984
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    Multi-Deklarator auto N1737
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    Entfernen von "auto" als Speicherklassenspezifizierer N2546
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    

Neue Funktionsdeklaratorsyntax

N2541
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Lambda-Ausdrücke N2927
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Deklarierter Typ eines Ausdrucks N2343
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
    Unvollständige Rückgabetypen N3276
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Rechte spitze Klammern N1757
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Template-Standardargumente für Funktions-Templates DR226
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Beheben des SFINAE-Problems bei Ausdrücken DR339
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Alias-Templates N2258
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Externe Templates N1987
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Nullzeigerkonstante N2431
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Streng typisierte Aufzählungen N2347
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Forward-Deklarationen von Enums N2764
DR1206
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Standardisierte Attributsyntax N2761
Allowed.png
Generalisierte konstante Ausdrücke N2235
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Ausrichtungsunterstützung N2341
Allowed.png
Bedingtes Unterstützungsverhalten N1627
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Ändern undefinierten Verhaltens in diagnostizierbare Fehler N1727
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Delegierende Konstruktoren N1986
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Vererbung von Konstruktoren N2540
Allowed.png
Explizite Konvertierungsoperatoren N2437
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Neue Zeichentypen N2249
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Unicode-String-Literale N2442
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Roh-String-Literale N2442
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Universelle Zeichennamen in Literalen N2170
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Benutzerdefinierte Literale N2765
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Standard-Layout-Typen N2342
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Standardmäßig zu verwendende Funktionen N2346
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Gelöschte Funktionen N2346
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Erweiterte friend-Deklarationen N1791
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Erweiterung von sizeof N2253
DR850
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Inline-Namespaces N2535
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Uneingeschränkte Varianten N2544
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Lokale und unbenannte Typen als Template-Argumente N2657
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Bereichsbasiertes for N2930
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Explizite virtuelle Überschreibungen N2928
N3206
N3272
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Minimale Unterstützung für Speicherbereinigung und erreichbarkeitsbasierte Leckerkennung N2670
Auslösen von [noexcept] durch Verschiebekonstruktoren N3050
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Definieren spezieller Member-Funktionen für das Verschieben N3053
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Nebenläufigkeit
Sequenzpunkte N2239
Allowed.png
"Atomic"-Operationen N2427
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Starker Vergleich und Austausch N2748
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Bidirektionale Fences N2752
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Speichermodell N2429
Allowed.png
Datenabhängige Sortierung: "Atomics" und Speichermodell N2664
Allowed.png
Weitergeben von Exceptions N2179
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Zulassen von "Atomics" in Signalbehandlungsroutinen N2547
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Thread-lokaler Speicher N2659
Allowed.png
Dynamische Initialisierung und Freigabe bei Nebenläufigkeit N2660
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
C99-Features in C++11
Vordefinierter Bezeichner __func__ N2340
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
C99-Präprozessor N1653
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Typ long long N1811
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Erweiterte integrale Typen N1988
Allowed.png
Allowed.png
Allowed.png
Allowed.png
Allowed.png


Siehe auch