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

C++14-Features

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

C++11-Features

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

Neue Funktionsdeklaratorsyntax

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

Siehe auch