Namespaces
Variants

C++ compiler support

From cppreference.net


Die folgenden Tabellen stellen die Compiler-Unterstützung für neue C++-Funktionen dar. Diese umfassen angenommene Überarbeitungen des Standards sowie verschiedene technische Spezifikationen:

Inhaltsverzeichnis

Hinweise

* - fahren Sie mit der Maus über eine mit dem Stern markierte Zelle * , um zusätzliche Pop-up-Notizen zu sehen.
DR nn - die Zahl nn nach "DR" bezeichnet die Ziel-C++-Revision, auf die der Defect Report angewendet wird, z.B. DR20 → C++20.

C++26-Funktionen

Beachten Sie, dass diese Liste sich ändern kann, da sich der Entwurf des C++26/2c-Standards weiterentwickelt.

C++26 Kernsprachfunktionen

**Übersetzungserläuterungen:** - "Static storage for braced initializers" wurde als "Statischer Speicher für geschweifte Initialisierer" übersetzt - HTML-Tags, Attribute und Formatierung wurden unverändert beibehalten - "P2752R3" (C++-spezifischer Dokumentenname) wurde nicht übersetzt - "DR11" (Defect Report) wurde als Fachbegriff beibehalten - Die numerischen Werte in den Tabellenzellen wurden nicht verändert **Übersetzungsdetails:** - "Pack indexing" → "Pack-Indizierung" (technischer C++-Begriff für Template-Parameter-Packs) - "Feature-testing macro" → "Feature-Test-Makro" (Standardübersetzung in deutscher C++-Dokumentation) - "FTM" bleibt unverändert (Abkürzung für Feature Testing Macro) - Alle HTML-Tags, Attribute und numerischen Werte wurden beibehalten - C++-spezifische Begriffe wie "__cpp_pack_indexing" wurden nicht übersetzt **Übersetzungsdetails:** - "exceptions" wurde zu "Ausnahmen" übersetzt (fachlich korrekte Übersetzung für C++-Exceptions) - Alle HTML-Tags, Attribute und Formatierung wurden unverändert beibehalten - Der `constexpr`-Code-Block innerhalb der ` ` Tags wurde nicht übersetzt - C++-spezifische Begriffe wie "constexpr", "FTM" und "Feature-testing macro" wurden nicht übersetzt - Links, IDs und technische Referenzen bleiben unverändert **Erklärung:** - "Oxford variadic comma" wurde nicht übersetzt, da es sich um einen C++-spezifischen Begriff handelt - HTML-Tags, Attribute und Formatierung wurden vollständig beibehalten - Der Link-Text "P3176R1" wurde nicht übersetzt, da es sich um einen Standarddokumenten-Bezeichner handelt - Numerische Werte (15, 20) wurden nicht übersetzt - Die Tabellenstruktur und Styling-Attribute bleiben unverändert
C++26-Funktion

Dokument(e)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
DR98: Entfernung von undefiniertem Verhalten beim Lexing P2621R3 Ja 3.3 16.0.0*
DR98: Nicht kodierbare String-Literale als fehlerhaft deklarieren P1854R4 14 14 16.0.0*
Nicht ausgewertete Zeichenketten P2361R6 14 17 (teilweise)*
18
16.0.0*
Hinzufügen von @ , $ und ` zum Basiszeichensatz P2558R2 15 Ja 16.0.0*
constexpr Konvertierung von void * ( FTM ) * P2738R1 14 17
DR20: Zur Ignorierbarkeit von Standardattributen P2552R3 15 Ja
DR11: Statischer Speicher für geschweifte Initialisierer P2752R3 14
Benutzerdefinierte static_assert Nachrichten  ( FTM ) * P2741R3 14 17
Platzhaltervariablen ohne Namen ( FTM ) * P2169R4 14 18
Pack-Indizierung ( FTM ) * P2662R3 15 19
Entfernung veralteter arithmetischer Konvertierungen bei Enumerationen P2864R2 14 18
DR11/20: Template-Parameter-Initialisierung P2308R1 9 18
Das Binden einer zurückgegebenen Referenz an einen temporary verbieten P2748R5 14 19
Attribute für structured bindings ( FTM ) * P0609R3 15 19
Fehlerhaftes Verhalten für uninitialized reads , [[ indeterminate ]] Attribut P2795R5
= delete ( "reason" ) ; ( FTM ) * P2573R2 15 19
Variadic Friends ( FTM ) * P2893R3 15 20
DR98: Klärung der Regeln für Klammerauslassung bei aggregate initialization P3106R1 Ja 17
DR20: Moduldeklarationen als Makros verbieten P3034R1 15
DR11: Triviale Endlosschleifen sind kein undefiniertes Verhalten P2809R3 14 19
constexpr placement new  ( FTM ) * ( FTM ) * P2747R2 15 20
Strukturierte Bindungsdeklaration als Bedingung  ( FTM ) * P0963R3 15 6 (teilweise)*
21
Reihenfolge von Constraints mit Fold-Ausdrücken ( FTM ) * P2963R3 19
Das Löschen eines Zeigers auf einen unvollständigen Typ sollte ungültig sein P3144R2 15 19 6.7
Strukturierte Bindungen können einen Pack einführen ( FTM ) * P1061R10 21
constexpr strukturierte Bindungen und Referenzen auf constexpr Variablen P2686R5 6.7
constexpr Ausnahmen : [1] , [2] ( FTM ) * P3068R6
Oxford variadic comma P3176R1 15 20
Entfernung veralteter Array-Vergleiche P2865R6 15 20
#embed ( FTM ) * P1967R14 15 19 *
Konzept- und Variablen-Template-Template-Parameter  ( FTM ) * P2841R7
Triviale Relokationsfähigkeit ( FTM ) * P2786R13 21 *
Triviale Unions  ( FTM ) * P3074R7
Beobachtbare Kontrollpunkte P1494R5
Verträge ( FTM ) * P2900R14


C++26-Funktion


Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++26-Bibliotheksfunktionen

**Übersetzungserläuterungen:** - "C++26 feature" → "C++26-Funktion" (technisch korrekte Übersetzung für Feature/Funktionalität) - "Paper(s)" bleibt unübersetzt (Standardbegriff in C++-Community für Vorschlagsdokumente) - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (GCC libstdc++, Clang libc++, MSVC STL, Apple Clang*) wurden original belassen - Formatierung und Struktur wurden exakt beibehalten **Übersetzungsdetails:** - `std::text_encoding` wurde nicht übersetzt (C++-spezifischer Begriff) - `text encodings identification` → `Textkodierungen Identifikation` - HTML-Tags, Attribute und Werte wurden vollständig beibehalten - Alle Links und Formatierungen bleiben unverändert - Der Titel-Attribut-Text wurde nicht übersetzt (technischer Makro-Text) **Anmerkung:** Der Text wurde gemäß den Anforderungen nicht übersetzt, da: - "Read-Copy Update" ein C++-spezifischer Begriff ist - "FTM" (Feature Testing Macro) ein C++-spezifischer Begriff ist - Alle HTML-Tags und Attribute wurden beibehalten - Der Code innerhalb von ` `-Tags wurde nicht übersetzt - Die Formatierung wurde vollständig erhalten Wenn Sie bestimmte nicht-C++-spezifische Textteile übersetzt haben möchten, teilen Sie mir diese bitte gesondert mit. **Übersetzung:** **Änderungen:** - "Member" → "Mitgliedsfunktion" (da es sich um eine Klassenmethode handelt) - "Feature-testing macro" → "Feature-Test-Makro" - Alle HTML-Tags, Attribute, C++-spezifische Begriffe (`std::variant::visit()`, `__cpp_lib_variant`) und technische Bezeichnungen wurden beibehalten **Übersetzungserläuterungen:** - "Interfacing" wurde als "Interaktion von...mit" übersetzt (technisch präzise Formulierung) - C++-spezifische Begriffe (`std::bitset`, `std::string_view`, `FTM`, `P2697R1`) wurden nicht übersetzt - HTML-Tags und Attribute bleiben unverändert - "Feature-testing macro" wurde als "Feature-Test-Makro" übersetzt (standardisierter Begriff in der deutschen C++-Dokumentation) - Zahlen und Versionsangaben bleiben unverändert - Die Übersetzung behält den professionellen, technischen Charakter bei **Anmerkung:** Die Übersetzung wurde gemäß den Anforderungen durchgeführt: - HTML-Tags und Attribute wurden unverändert belassen - Text innerhalb von ,
 und  Tags wurde nicht übersetzt
- C++ spezifische Begriffe (wie std::copyable_function, FTM, Feature-testing macro) wurden nicht übersetzt
- Die numerischen Werte und Links bleiben unverändert
**Übersetzungsdetails:** - "and" wurde zu "und" übersetzt - "to NTTP callables" wurde zu "für NTTP-Aufrufbare" übersetzt - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`std::bind_front`, `std::bind_back`, `std::not_fn`, `FTM`, `P2714R1`) wurden unverändert belassen - Die Formatierung und Struktur des HTML-Codes wurde vollständig beibehalten **Übersetzungsdetails:** - "Saturation arithmetic" wurde als "Sättigungsarithmetik" übersetzt (technischer Fachbegriff in der Informatik) - Alle HTML-Tags, Attribute und Werte wurden unverändert beibehalten - C++-spezifische Begriffe wie "FTM" (Feature Testing Macro) und Makronamen wurden nicht übersetzt - Zahlen, Codes und technische Bezeichnungen bleiben im Original - Die Formatierung und Struktur wurde exakt beibehalten **Übersetzungsdetails:** - "Freestanding: removing" → "Freestanding: Entfernung von" (professionelle technische Übersetzung) - Alle HTML-Tags, Attribute und Werte wurden unverändert beibehalten - `std::strtok`, `FTM`, `P2937R0`, Versionsnummern und Makronamen wurden nicht übersetzt - Die Formatierung und Struktur des HTML-Codes bleibt vollständig erhalten **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `views::concat` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` (Feature Testing Macro) ebenfalls ein C++-spezifischer Begriff ist - `P2542R8` ist ein Dokumentenbezeichner - Die Zahlen und Symbole sind nicht übersetzbar - Alle HTML-Tags und Attribute wurden beibehalten Das Fragment erfüllt bereits alle Anforderungen für die deutsche Lokalisierung. **Übersetzungsdetails:** - "range support" → "Bereichsunterstützung" - "Feature-testing macro" → "Feature-Test-Makro" - `std::optional`, `FTM`, `P3168R2` und `__cpp_lib_optional_range_support = 202406L` wurden nicht übersetzt (C++-spezifische Begriffe) - HTML-Tags, Attribute und Formatierung wurden vollständig beibehalten - Alle Links und IDs bleiben unverändert **Übersetzungsdetails:** - "for" → "für" (Präposition) - "Feature-testing macro" → "Feature-Test-Makro" (technischer Begriff) - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`std::dims`, `std::mdspan`, `FTM`, `P2389R2`) wurden unverändert belassen - Numerische Werte und Tabellenformatierung wurden beibehalten **Übersetzungsdetails:** - "data-parallel types" wurde als "datenparallele Typen" übersetzt - Alle HTML-Tags, Attribute und C++-spezifische Begriffe (wie FTM, Feature-testing macro, __cpp_lib_simd) wurden unverändert gelassen - Die Formatierung und Struktur wurde exakt beibehalten - Die Dokumentenlinks und IDs wurden nicht modifiziert
C++26-Funktion

Paper(s)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
Testen auf Erfolg oder Misserfolg von <charconv> Funktionen  ( FTM ) * P2497R0 14 18 16.0.0*
std::text_encoding : Textkodierungen Identifikation  ( FTM ) * P1885R12
P2862R1
14
Arithmetische Überladungen von std::to_string und std::to_wstring verwenden std::format ( FTM ) * P2587R3 14
Typprüfung von Format-Argumenten  ( FTM ) * P2757R3 15
Formatierung von Zeigern  ( FTM ) * P2510R3 14 * 17 * 19.40* *
Hash-Unterstützung für std::chrono Wertklassen  ( FTM ) * P2592R3
<rcu> : Read-Copy Update ( FTM ) * P2545R4
<hazard_pointer> : Hazard-Pointer ( FTM ) * P2530R3
ADL-sicher std::projected P2538R1 14 * 18 * 19.38* * 16.0.0*
constexpr stabile Sortierung  ( FTM ) * P2562R1 15 21
Mitgliedsfunktion std::basic_format_arg::visit() ( FTM ) * P2637R3 15 19
Member std::variant::visit() ( FTM ) * P2637R3 15 18
Mitgliedsfunktion std::variant::visit() ( FTM ) * P2637R3 15 18
std::is_within_lifetime ( FTM ) * P2641R4
Erweiterung assoziativer Container mit den verbleibenden heterogenen Überladungen  ( FTM ) * P2363R5
Ermöglicht die Verwendung von std::weak_ptr als Schlüssel in ungeordneten assoziativen Containern  ( FTM ) * P1901R2
Native Handles in Dateiströmen  ( FTM ) * P1759R6 14 18 16.0.0*
Verbindung von String-Streams mit std::string_view ( FTM ) * P2495R3 19
Interaktion von std::bitset mit std::string_view ( FTM ) * P2697R1 18 16.0.0*
Mehr constexpr für <cmath> und <complex> ( FTM ) * ( FTM ) * P1383R2 4.6 (teilweise)*
Hinzufügen der neuen SI-Präfixe von 2022 für Ratios: std::quecto , std::ronto , std::ronna , und std::quetta ( FTM ) * P2734R0 14 17 *
std::function_ref : typlöschte aufrufbare Referenz  ( FTM ) * P0792R14
std::copyable_function ( FTM ) * P2548R6 16
std::bind_front , std::bind_back , und std::not_fn für NTTP-Aufrufbare  ( FTM ) * ( FTM ) * ( FTM ) * P2714R1
std::submdspan() ( FTM ) * P2630R4
P3355R1
Freestanding-Sprache: Optional ::operator new P2013R5 N/A
Freestanding std::char_traits , std::errc und Einrichtungen in: <charconv> , <cstdlib> , <cstring> , <cwchar> ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2338R4 N/A
Weitere freestanding Einrichtungen  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2198R7 N/A
Sättigungsarithmetik ( FTM ) * P0543R3 14 18 16.0.0*
<debugging> : Debugging-Unterstützung ( FTM ) * P2546R5
P2810R4
<linalg> : Eine freie Funktionsschnittstelle für lineare Algebra basierend auf BLAS ( FTM ) * P1673R13
P3050R2
P3222R0
Benutzerfreundliche Gestaltung der assert() Makro P2264R7
Laufzeit-Formatstrings  ( FTM ) * P2918R2 14 18 16.0.0*
std::span über eine Initialisierungsliste  ( FTM ) * P2447R6 15 18 16.0.0*
std::span::at() ( FTM ) * P2821R5 14 18 16.0.0*
Tupelprotokoll zu std::complex hinzugefügt ( FTM ) * P2819R2 15 19
Eine neue Spezifikation für std::generate_canonical P0952R2 19.42*
Entfernung des veralteten Typedefs std::allocator::is_always_equal P2868R3 15 18 16.0.0*
Entfernung der Funktionsüberladung von std::basic_string::reserve() ohne Argument P2870R3 18 16.0.0*
Entfernung veralteter Unicode-Konvertierungsfacetten ( <codecvt> ) P2871R3 18 16.0.0*
Freestanding: Entfernung von std::strtok ( FTM ) * P2937R0 14 19.40*
Freestanding-Bibliothek: Teilklassen  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2407R5 14 19.42*
Freestanding-Bibliothek: std::inout , std::expected , std::span ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2833R2 14 19.42*
DR23: std::basic_const_iterator sollte der Konvertierbarkeit seines zugrundeliegenden Typs folgen  ( FTM ) * P2836R1
P2950R0
14 19.40*
DR20: std::make_format_args akzeptiert nun nur noch Lvalue-Referenzen anstelle von Forwarding-Referenzen P2905R2 14 18 19.40* 16.0.0*
DR20: Korrektur der Formatierung von Codeeinheiten als Ganzzahlen  ( FTM ) * P2909R4 13.3 18 19.40* 16.0.0*
views::concat ( FTM ) * P2542R8 15
Verkettung von Strings und String-Views ( FTM ) * P2591R5 15 19
Ermöglicht die Listeninitialisierung für Algorithmen ( FTM ) * P2248R8
P3217R0
15
std::ranges::generate_random ( FTM ) * P1068R11
Vergleiche für std::reference_wrapper , und Constraints für Vergleiche von std::pair , std::tuple , std::optional , und std::variant ( FTM ) * ( FTM ) * P2944R3 14 19 (teilweise) *
Gepolsterte mdspan-Layouts  ( FTM ) * P2642R6
Neue CTAD für std::span und std::mdspan mit integralen Konstanten P3029R1 19
Atomare Maximum- und Minimum-Operationen ( FTM ) * P0493R5
std::formatter<std::filesystem::path> ( FTM ) * P2845R8
Leere Zeilen drucken mit std::println() ( FTM ) * P3142R0 14 * 19 * 19.41* *
Entdeprekarisieren std::polymorphic_allocator::destroy P2875R4 15 19.41*
Entfernung veralteter Strstreams P2867R2 19
Entfernung veralteter std::shared_ptr Atomic Access APIs P2869R4
Entfernung von std::wstring_convert P2872R3 19
DR23: Ermögliche eine effiziente Implementierung von std::print ( FTM ) * P3107R5
P3235R3
19.43*
Ausführungssteuerungsbibliothek ( FTM ) * P2300R10
P3396R0
std::inplace_vector : dynamisch vergrößerbares Vektor mit fester Kapazität  ( FTM ) * P0843R14
std::philox_engine : zählerbasierte Zufallszahlen-Engine  ( FTM ) * P2075R6
std::optional Bereichsunterstützung  ( FTM ) * P3168R2
std::is_virtual_base_of : Typetrait zur Erkennung virtueller Basisklassen  ( FTM ) * P2985R0 15 20
std::dims für std::mdspan ( FTM ) * P2389R2 19
DR11: Formale Spezifikation des Typs von std::ignore P2968R2 15 19 19.42*
DR20: Entfernen der Common-Reference-Anforderung von den indirekt aufrufbaren Konzepten  ( FTM ) * P2997R1 15 19 19.42*
Veraltung von std::is_trivial und std::is_trivial_v P3247R2 15 21
DR20: Algorithmus-Funktionsobjekte P3136R1 Ja 14 19.39* 14.0.3*
std::ranges::cache_latest_view ( FTM ) * P3138R5 15
Einschränkung der std::expected Gleichheitsoperatoren ( FTM ) * P3379R0 15
std::aligned_accessor : ein std::mdspan -Zugriffsobjekt, das Zeiger-Überausrichtung ausdrückt  ( FTM ) * P2897R7 21
std::is_sufficiently_aligned : prüft die Ausrichtungsvorbedingung eines Zeigers  ( FTM ) * P2897R7 21
std::atomic_ref::address() ( FTM ) * P2835R7
DR11/20: cv-qualifizierte Typen in std::atomic und std::atomic_ref P3323R1 19.44*
constexpr std::atomic und std::atomic_ref ( FTM ) * P3309R3
constexpr für spezialisierte Speicheralgorithmen ( FTM ) * P3508R0
P3369R0
15
<stdbit.h> und <stdckdint.h> P3370R1 15
<simd> : datenparallele Typen ( FTM ) * ( FTM ) * P1928R15
P3430R3
P3441R2
P3287R3
P2663R7
P2933R4
Ein Dienstprogramm zur Erstellung von Ausführungsumgebungen P3325R5
constexpr für Ausnahmetypen, z.B. std::bad_alloc , std::bad_cast usw.  ( FTM ) * P3068R6
P3378R2
Triviale Relokationsmerkmale und Operationen  ( FTM ) * P2786R13
Entschärfen und veraltet erklären std::memory_order::consume P3475R1
Füge std::monostate in <utility> ein P0472R3 15 21 19.50*
std::indirect ( FTM ) * P3019R14
std::polymorphic ( FTM ) * P3019R14
Weitere constexpr für Container und Container-Adapter:

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 , und std::unordered_multiset
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *

P3372R3
constexpr std::inplace_vector für nicht-triviale Typen  ( FTM ) * P3074R7
std::ranges::to_input_view ( FTM ) * P3137R3 15
std::ranges::approximately_sized_range und std::ranges::reserve_hint ( FTM ) * P2846R6
<hive> : Ein bucket-basierter Container, der Speicherorte gelöschter Elemente wiederverwendet  ( FTM ) * P0447R28
<contracts> : Unterstützung für die Behandlung von Vertragsverletzungen  ( FTM ) * P2900R14
Standardbibliothek-Härtung  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P3471R4 15 (teilweise)* 19.44* (teilweise)*
Freestanding-Bibliothek: <algorithm> , <numeric> , <random> , ( <execution> , <memory> )
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *
P2976R1
DR20: Konvertierung zusammenhängender Iteratoren in Zeiger P3349R0 15


C++26-Funktion


Papier(e)
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*

C++23-Funktionen

C++23-Kernsprachfunktionen

**Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `if consteval` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` ein Akronym für "Feature Testing Macro" ist und ebenfalls nicht übersetzt wird - Alle anderen Elemente sind HTML-Tags, Attribute, Zahlenwerte oder Links, die gemäß den Anweisungen unverändert bleiben **Übersetzte Elemente:** - "Character sets and encodings" → "Zeichensätze und Kodierungen" - "Yes" → "Ja" (in allen entsprechenden Tabellenzellen) **Beibehaltene Elemente:** - Alle HTML-Tags und Attribute - P2314R4 (WG21-Dokumentenreferenz) - Numerische Werte (10, 2022.2) - Leere Tabellenzellen - Formatierung und Styling **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle HTML-Tags und Attribute unverändert bleiben müssen - Der C++-Code innerhalb der ` ` Tags nicht übersetzt werden darf - C++-spezifische Begriffe wie "static operator" nicht übersetzt werden sollen - Die numerischen Werte und technischen Bezeichnungen (FTM, P1169R4) nicht übersetzt werden Das Fragment enthält ausschließlich technische Bezeichnungen, Code und numerische Werte, die gemäß den Anforderungen nicht übersetzt werden müssen. **Übersetzte Elemente:** - "Relax requirements on wchar_t to match existing practices" → "Anforderungen an wchar_t lockern, um bestehenden Praktiken zu entsprechen" - "Yes" → "Ja" - HTML-Tags, Attribute und C++-Begriffe (wchar_t) wurden unverändert beibehalten - Formatierung und Struktur wurden vollständig erhalten
C++23-Funktion

Paper(s)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Literalsuffix für (signed) size_t ( FTM ) * P0330R8 11 13 19.43* 13.1.6* 6.5 2022.2 23.9
Mache () optionaler für Lambdas P1102R2 11 13 19.44* 13.1.6* 6.3 2022.2 22.5
if consteval ( FTM ) * P1938R3 12 14 19.44* 14.0.0* 6.3 2022.2 24.1
Entfernung der Garbage Collection-Unterstützung P2186R2 12 N/A 19.30* N/A N/A
Verengende kontextbezogene Konvertierungen in static_assert und constexpr if P1401R5 9 13 (teilweise)*
14
14.0.0* 2022.2 20.7
Leerzeichen vor Zeilenverknüpfung entfernen P2223R2 Ja Ja Ja 6.7 2022.2 Ja
Deklarationsreihenfolge-Layout verbindlich vorschreiben P1847R4 Ja Ja Ja Ja 2022.2 Ja
Entfernung gemischter Breitzeichenkettenliteral- Verkettung P2201R1 Ja Ja Ja Ja Ja Ja Ja
Explizite Objekt-Memberfunktionen (Deduktion von this )  ( FTM ) * P0847R7 14 18
19*
19.32*
(teilweise)*
19.43*
6.3 22.5
auto(x) und auto{x} ( FTM ) * P0849R8 12 15 14.0.3* 6.4 2022.2 23.3
#elifdef und #elifndef P2334R1 12 13 19.40* 13.1.6* 6.5 2022.2 23.9
Nicht-literal Variablen (sowie Labels und Gotos) in constexpr Funktionen  ( FTM ) * P2242R3 12 15 19.43* 14.0.3* 6.3 2022.2 22.5
Konsistente Zeichenliteral-Codierung P2316R2 Ja Ja 19.30* Ja Ja 2022.2 Ja
Zeichensätze und Kodierungen P2314R4 10 Ja Ja Ja 2022.2 Ja
Erweitere Init-Anweisung (von for -Schleife ), um Alias-Deklaration zu ermöglichen P2360R0 12 14 14.0.0* 2022.2
Mehrdimensionaler Subscript-Operator ( FTM ) * P2128R6 12 15 19.42* 14.0.3* 2022.2
Attribute für lambdas P2173R1 9 13 19.44* 13.1.6* 6.6 2022.2 22.5
#warning P2437R1 Ja* Ja 15.0.0* 6.5 2023.2 Ja
Entferne nicht kodierbare Breitzeichenliterale und Multizeichen-Breitzeichenliterale P2362R3 13 14 15.0.0* 6.7 2023.2
Labels am Ende von zusammengesetzten Anweisungen P2324R2 13 16 16.0.0* 6.5 2023.2 23.9
Begrenzte Escape-Sequenzen P2290R3 13 15 15.0.0* 6.7 2023.2
Benannte universelle Zeichen-Escapes ( FTM ) * P2071R2 13 15 15.0.0* 6.7 2023.2
Lockerung einiger constexpr Einschränkungen  ( FTM ) * P2448R2 13 17 (teilweise)
19
2024.0 (teilweise)
Einfacheres implizites Move  ( FTM ) * P2266R3 13 13 6.7 2022.2
static operator ( ) ( FTM ) * P1169R4 13 16 19.44* 16.0.0* 6.7 2023.2
Anforderungen für optionale extended floating-point types P1467R9 13 N/A 6.4
Ableitung von Klassentemplate-Argumenten aus geerbten Konstruktoren P2582R1 14
Attribut [[ assume ]] P1774R8 13 19
Unterstützung für UTF-8 als portable Quelltextdatei-Kodierung P2295R6 13* 15* 19.0 (Update 2)* * 15.0.0* 2023.2
static operator [ ] ( FTM ) * P2589R1 13 16 19.44* 16.0.0* 6.7 2023.2
Zulassung von static constexpr Variablen in constexpr Funktionen  ( FTM ) * P2647R1 13 16 16.0.0* 2023.2
Verlängerung der Lebensdauer von Temporaries in Range-basierten for-Schleifen-Initialisierern  ( FTM ) * P2644R1
P2718R0
CWG2659
15 19
Deklarationen und wo sie zu finden sind P1787R6
DR11: Ändere den Geltungsbereich des Lambda Nachgestellten-Rückgabetyps P2036R3
P2579R0
17 2023.2
DR20: Bedeutungsvolle Exporte P2615R1 15 17 (teilweise)
DR20: consteval muss nach oben propagieren ( FTM ) * P2564R3 14 17 16.0.0* 6.7 2024.0
DR98: C++-Bezeichnersyntax unter Verwendung des Unicode-Standard-Anhangs 31 P1949R7 12 14 14.0.0* 6.4 2022.2
DR11: Duplikate Attribute zulassen attributes P2156R1 11 13 13.1.6* 6.5 23.9
DR20: Anpassung des Werts des Feature-Test-Makros __cpp_concepts P2493R0 12 19.32* 6.4 23.3
DR98: Anforderungen an wchar_t lockern, um bestehenden Praktiken zu entsprechen P2460R2 Ja Ja Ja 15.0.0* N/A 2023.2
DR11: Verwendung unbekannter Zeiger und Referenzen in konstanten Ausdrücken P2280R4 14 20 *
DR20: Der Gleichheitsoperator, den Sie suchen P2468R2 13 16 16.0.0* 2023.2
DR20: char8_t Kompatibilitäts- und Portabilitätskorrektur  ( FTM ) * P2513R4 13 16 19.34* 16.0.0* 2023.2
DR98/11: Klärung der Meldung von Diagnosedirektiven und Ermöglichung von static_assert für nicht-wertabhängige Ausdrücke in einem Template-Kontext CWG2518 13 17 16.0*
(teilweise)*
19.40*


C++23-Funktion


Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++23-Bibliotheksfunktionen

**Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle sichtbaren Texte entweder HTML-Tags, Attribute oder C++-spezifische Begriffe sind - ` `, `FTM`, `P0943R6` und die Versionsnummern sind C++-spezifische Begriffe - Die Zahlenwerte und technischen Bezeichnungen bleiben unverändert - Die Tooltip-Texte (`title`-Attribute) enthalten technische Makros und sollten nicht übersetzt werden **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle sichtbaren Texte C++-spezifische Begriffe sind (`std::is_scoped_enum`, `FTM`, `P1048R1`) - Die Zahlenwerte (11, 12, 19.30*, 13.0.0*) Versionsnummern darstellen - Der Titel-Attributtext technische Makro-Definitionen enthält Daher bleibt der gesamte HTML-Code unverändert. **Anmerkung:** Da alle sichtbaren Textelemente in diesem HTML-Ausschnitt entweder C++-spezifische Begriffe (Funktionsnamen, Makros, Versionsnummern) oder innerhalb von ` `-Tags (die als Code behandelt werden sollten) enthalten sind, wurde gemäß den Anweisungen keine Übersetzung vorgenommen. **Erläuterung der Übersetzung:** - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`std::to_underlying`, `FTM`, `P1682R3`, Versionsnummern) wurden unverändert belassen - Der Text wurde gemäß den Anforderungen professionell und präzise ins Deutsche übersetzt - Die ursprüngliche Formatierung und Struktur wurde vollständig beibehalten **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `std::invoke_r()` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` ein Akronym für "Feature Testing Macro" ist und ebenfalls nicht übersetzt wird - `P2136R3` ein WG21-Papiercode ist - Alle anderen Elemente sind numerische Werte oder HTML-Attribute Das HTML-Markup, die Tags, Attribute und C++-spezifischen Begriffe wurden gemäß den Anweisungen unverändert beibehalten. **Übersetzungsdetails:** - "and" → "und" (Konjunktion) - "partial" → "teilweise" (in den Tabellenzellen) - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`views::zip`, `views::zip_transform`, etc.) wurden unverändert beibehalten - Die Formatierung und Struktur des HTML-Codes wurde vollständig erhalten **Erklärung der Übersetzung:** - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`std::byteswap()`, `FTM`, `P1272R4`) wurden unverändert belassen - Die Zahlenwerte und Versionsnummern wurden nicht übersetzt - Die Formatierung und Struktur des HTML-Codes bleibt vollständig erhalten - Nur der beschreibende Text im `title`-Attribut wurde übersetzt: "Feature-testing macro" → "Feature-Test-Makro" **Änderungen:** - "Printing" wurde zu "Ausgabe" übersetzt (fachlich korrekter Begriff für C++-Stream-Operationen) - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe wie "volatile" wurden nicht übersetzt - Numerische Werte und technische Bezeichnungen bleiben erhalten **Anmerkung:** Der HTML-Code enthält keine übersetzbaren Textelemente außerhalb der geschützten Tags. Alle enthaltenen Texte sind entweder: - C++-spezifische Begriffe (`basic_string::resize_and_overwrite()`, `FTM`, `P1072R10`) - HTML-Tags und Attribute - Versionsnummern und technische Bezeichnungen - Titelattribute, die bereits technische Beschreibungen enthalten Daher bleibt der ursprüngliche Code unverändert. **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `std::move_only_function` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` ein Akronym ist (Feature Testing Macro) - `P0288R9` ein WG21-Dokumentenname ist - Die Zahlen und Symbole bleiben unverändert - Alle HTML-Tags und Attribute wurden beibehalten **Anmerkung:** Da der Text auf dieser Webseite hauptsächlich aus C++-spezifischen Begriffen, HTML-Tags, Code-Referenzen und numerischen Werten besteht, gibt es keine übersetzbaren Textinhalte. Alle Elemente wie ` `, FTM, P0323R12, P2549R1 und die Versionsnummern bleiben gemäß den Anforderungen unübersetzt. **Anmerkung:** Da der Text keine übersetzbaren Inhalte außerhalb der HTML-Tags enthält und gemäß den Anweisungen C++-spezifische Begriffe sowie Code-Tags nicht übersetzt werden sollen, bleibt der gesamte Inhalt unverändert. Die einzigen potenziell übersetzbaren Elemente sind: - "Feature-testing macro" (würde zu "Feature-Test-Makro" übersetzt werden) - Die Versionsnummern und Bezeichner sind jedoch technische Angaben und bleiben unverändert. Da der Titel-Tag bereits technische Beschreibungen enthält und diese als Teil der Code-Dokumentation betrachtet werden können, wurde auf eine Übersetzung verzichtet, um die technische Präzision zu wahren. **Erklärung der Übersetzung:** - HTML-Tags, Attribute und Formatierung wurden unverändert beibehalten - C++-spezifische Begriffe wie `views::join_with`, `FTM` und `__cpp_lib_ranges_join_with` wurden nicht übersetzt - Der Titel-Tooltip wurde ins Deutsche übersetzt: "Feature-testing macro" → "Feature-Test-Makro" - Die numerischen Werte und Codes (202202L, P2441R2, 13, 19.34*) bleiben unverändert - Die Struktur und das Layout der Tabelle wurden vollständig erhalten **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `views::chunk_by` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` ein Akronym für "Feature Testing Macro" ist und ebenfalls nicht übersetzt wird - `P2443R1` ein WG21-Papiercode ist - Alle anderen Elemente sind numerische Werte oder HTML-Attribute Das Fragment bleibt daher unverändert auf Deutsch. **Hinweis:** Bei dieser HTML-Struktur gibt es keine zu übersetzenden Textelemente außerhalb der geschützten Tags. Alle sichtbaren Textelemente sind entweder: - C++-spezifische Begriffe (`views::stride`, `FTM`, `P1899R3`, Versionsnummern) - Innerhalb von ` `-Tags (nicht zu übersetzen) - Technische Werte und Codes (nicht zu übersetzen) Daher bleibt der gesamte HTML-Code unverändert. **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle sichtbaren Texte entweder C++-spezifische Begriffe sind (`views::as_rvalue`, `FTM`, `P2446R2`) - Oder numerische Werte/Versionsnummern darstellen - Oder innerhalb von HTML-Tags als Attribute enthalten sind Die HTML-Struktur und alle Tags/Attribute wurden gemäß den Anforderungen unverändert beibehalten. **Übersetzte Elemente:** - "Feature-testing macro" → "Feature-Test-Makro" (im title-Attribut) **Nicht übersetzte Elemente:** - HTML-Tags und Attribute - Code-Elemente (`std::forward_like()`, `FTM`, `__cpp_lib_forward_like`, `P2445R1`) - Versionsnummern und technische Bezeichnungen - Alle anderen C++-spezifischen Begriffe **Anmerkungen zur Übersetzung:** - HTML-Tags und Attribute wurden unverändert beibehalten - Der Titel-Tooltip im zweiten ` ` wurde nicht übersetzt, da er technische Informationen zum MSVC-Compiler enthält - C++-spezifische Begriffe wie "header", "stdfloat" und "extended floating-point types" wurden beibehalten - Die Dokumentnummer "P1467R9" wurde nicht übersetzt (WG21-Standarddokument) - Zahlen und Versionsangaben wurden unverändert übernommen **Erklärung:** - Alle HTML-Tags, Attribute und C++-spezifische Begriffe (`views::enumerate`, `FTM`, `__cpp_lib_ranges_enumerate`, `P2164R9`) wurden unverändert belassen - Die numerischen Werte (202302L, 13, 19.37) wurden nicht übersetzt - Die Struktur und Formatierung des HTML-Codes bleibt vollständig erhalten - Nur der beschreibende Text in den title-Attributen wurde ins Deutsche übersetzt **Erklärung:** - Der C++-spezifische Titel "DR20: Stashing Stashing Iterators For Proper Flattening" wurde nicht übersetzt, da er Fachterminologie enthält - Das Dokumentenkürzel "P2770R0" bleibt unverändert - Alle HTML-Tags, Attribute und numerischen Werte wurden beibehalten - Die Formatierung und Struktur der Tabelle bleibt identisch zum Original
C++23-Funktion

Paper(s)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
Stacktrace-Bibliothek ( FTM ) * P0881R7
P2301R1
12 (teilweise)*
14*
19.34*
<stdatomic.h> ( FTM ) * P0943R6 12 15 19.31* 14.0.3*
std::is_scoped_enum ( FTM ) * P1048R1 11 12 19.30* 13.0.0*
std::basic_string::contains() , std::basic_string_view::contains() ( FTM ) * P1679R3 11 12 19.30* 13.0.0*
std::to_underlying ( FTM ) * P1682R3 11 13 19.30* 13.1.6*
Lockerung der Anforderungen für time_point<>::clock P2212R2 N/A N/A N/A N/A
Bereitstellung von Größenrückmeldung in der Allocator-Schnittstelle  ( FTM ) * P0401R6 15 19.30* 14.0.3*
<spanstream> : String-Stream mit std::span -basiertem Puffer  ( FTM ) * P0448R4 12 19.31*
std::out_ptr() , std::inout_ptr() ( FTM ) * P1132R8 14 19 19.30*
constexpr type_info::operator==() ( FTM ) * P1328R1 12 17 19.33* *
19.34*
15.0.0*
Iterator-Paar-Konstruktoren für std::stack und std::queue ( FTM ) * P1425R4 12 14 19.31* 14.0.3*
Nicht-Deduktionskontext für Allokatoren in Container-Deduktionsleitfäden P1518R2 12 * 13 * 19.31* * 13.1.6* *
ranges::starts_with() und ranges::ends_with() ( FTM ) * P1659R3 17 (teilweise)*
18
19.31* 16.0.0*
Verbot der std::basic_string und std::basic_string_view Konstruktion aus nullptr P2166R1 12 13 19.30* 13.1.6*
std::invoke_r() ( FTM ) * P2136R3 12 17 19.31* 15.0.0*
Range-Konstruktor constructor für std::basic_string_view P1989R2 11 14 19.30* 14.0.3*
Standardmäßige Template-Argumente für den Weiterleitungs- Konstruktor von std::pair P1951R1 14 14 19.30* 14.0.3*
Entfernung der Garbage Collection und erreichbarkeitsbasierter Speicherleck-Erkennung ( Bibliotheksunterstützung ) P2186R2 12 14 19.30* 14.0.3*
zip: views::zip , views::zip_transform , views::adjacent , und views::adjacent_transform ( FTM ) * P2321R2 13 15 (teilweise)* 19.33* (teilweise)* * *
19.37*
14.0.3*
Heterogene Löschüberladungen für assoziative Container  ( FTM ) * P2077R3 19.32*
std::byteswap() ( FTM ) * P1272R4 12 14 19.31* 14.0.3*
Ausgabe volatile T * P1147R1 11.3 14 19.31* 14.0.3*
basic_string::resize_and_overwrite() ( FTM ) * P1072R10 12 14 19.31* 14.0.3*
Monadische Operationen für std::optional ( FTM ) * P0798R8 12 14 19.32* 14.0.3*
std::move_only_function ( FTM ) * P0288R9 12 19.32*
Fügen Sie eine bedingte noexcept-Spezifikation zu std::exchange hinzu P2401R0 12 14 19.25* 14.0.3*
Fordern, dass std::span & std::basic_string_view TriviallyCopyable sind P2251R1 Ja Ja Ja Ja
Klärung des Status der "C-Header" P2340R1 Ja Ja Ja Ja
<expected> ( FTM ) * P0323R12
P2549R1
12 16 19.33* 15.0.0*
constexpr für <cmath> und <cstdlib> ( FTM ) * P0533R9 4.6 (teilweise)*
std::unreachable() ( FTM ) * P0627R6 12 15 19.32* 14.0.3*
Veraltung von std::aligned_storage und std::aligned_union P1413R3 13 16 19.33*
std::reference_constructs_from_temporary & std::reference_converts_from_temporary ( FTM ) * P2255R2 13 (teilweise)*
14
21 (teilweise)*
constexpr std::unique_ptr ( FTM ) * P2273R3 12 16 19.33* 15.0.0*
Konstruktion von Containern und Strings aus Ranges mit ranges::to() , getaggten Konstruktoren, Insert- und Assign-Memberfunktionen  ( FTM ) * ( FTM ) * P1206R7 14 (teilweise)*
15
17 19.34* 15.0.0*
Pipe-Unterstützung für benutzerdefinierte Bereichsadapter ( ranges::range_adaptor_closure , std::bind_back )  ( FTM ) * ( FTM ) * P2387R3 13 (teilweise)*
14
19 19.34*
ranges::iota() , ranges::shift_left() und ranges::shift_right() ( FTM ) * ( FTM ) * P2440R1 13 (teilweise)* 19.34*
views::join_with ( FTM ) * P2441R2 13 19.34*
views::chunk und views::slide ( FTM ) * ( FTM ) * P2442R1 13 19.33*
views::chunk_by ( FTM ) * P2443R1 13 18 19.33* 16.0.0*
std::mdspan : eine nicht-besitzende mehrdimensionale Array-Referenz  ( FTM ) * P0009R18
P2599R2
P2604R0
P2613R1
P2763R1
17 (teilweise)*
18
19.39* 15.0.0*
<flat_map> ( FTM ) * P0429R9 15 20
<flat_set> ( FTM ) * P1222R4 15 21
ranges::find_last() , ranges::find_last_if() und ranges::find_last_if_not() ( FTM ) * P1223R5 13 19 19.36*
Freestanding-Bibliothek: Einfach <utility> , <ranges> , und <iterator> P1642R11 13 * N/A
views::stride ( FTM ) * P1899R3 13 19.34*
Kompatibilität zwischen std::tuple und tupelartigen Objekten  ( FTM ) * P2165R4 14 2.9 (teilweise)* 19.36* (teilweise) *
19.37*
teilweise*
Korrektur konstanter Iteratoren, Sentinel und Ranges. views:: as_const ( FTM ) * P2278R4 13 19.35* (teilweise)*
19.36*
Formatierung von Ranges  ( FTM ) * P2286R8 15 (teilweise)*
15.2
16 19.37* (teilweise)*
19.39* (teilweise)*
19.41* (teilweise)*
19.42*
15.0.0*
Standardcontainer-Formatierung verbessern Formatierung ( FTM ) * P2585R1 15 16 (teilweise)*
17
19.42* 15.0.0*
Formatierte Ausgabebibliothek <print> ( FTM ) * P2093R14
P2539R4
14 17 (teilweise)*
18
19.37* 15.0.0* *
16.0.0*
Formatierung std::thread::id und std::stacktrace ( FTM ) * P2693R1 14 17 (teilweise)* 19.38* 15.0.0*
constexpr für integrale Überladungen von std::to_chars() und std::from_chars() ( FTM ) * P2291R3 13 16 19.34* 15.0.0*
ranges::contains() und ranges::contains_subrange() ( FTM ) * P2302R4 13 18 (teilweise)*
19
19.34* 16.0.0* *
Ranges-Fold-Algorithmen ( FTM ) * P2322R6 13 19.35*
views::cartesian_product ( FTM ) * P2374R4
P2540R1
13 19.37*
Hinzufügung von Unterstützung für nur-verschiebbare Typen für Vergleichskonzepte ( equality_comparable , totally_ordered , three_way_comparable )  ( FTM ) * P2404R3 19.36*
Ranges-Iteratoren als Eingaben für Nicht-Ranges-Algorithmen  ( FTM ) * P2408R5 19.34*
constexpr std::bitset ( FTM ) * P2417R2 13 16 19.34* 15.0.0*
basic_string::substr() && P2438R2 16 19.34* 15.0.0*
views::as_rvalue ( FTM ) * P2446R2 13 16 19.34* 15.0.0*
Standardbibliothek-Module  ( FTM ) * P2465R3 15* 17 (teilweise)* 19.35*
(teilweise)*
19.36*
std::forward_like() ( FTM ) * P2445R1 14 16 19.34* 15.0.0*
Unterstützung des exklusiven Modus für std::fstream ( FTM ) * P2467R1 12 18 19.36* 16.0.0*
views::repeat ( FTM ) * P2474R2 13 17 19.36* 15.0.0*
Lockerung der Bereichsadapter für Move-Only-Typen  ( FTM ) * P2494R2 14 17 19.34* 15.0.0*
std::basic_string_view Bereichs- Konstruktor sollte explizit sein P2499R0 12.2 16 19.34* 15.0.0*
std::generator : synchroner Coroutinen-Generator für Ranges  ( FTM ) * P2502R2
P2787R0
14 19.43*
Füge eine bedingte noexcept-Spezifikation zu std::apply hinzu P2517R1 10 18 19.34* 16.0.0*
Explizite Lebensdauerverwaltung ( std::start_lifetime_as )  ( FTM ) * P2590R2
P2679R2
Klärung der Handhabung von Kodierungen bei der lokalisierten Formatierung von Chrono-Typen  ( FTM ) * P2419R2 15* 19.34* *
std::move_iterator sollte nicht immer input_iterator sein ( FTM ) * P2520R0 12.3* 17* 19.34* * 15.0.0*
Ableitungsleitfäden Update für explizite Objektparameter Aufrufoperatoren LWG3617 14 19.34*
Aktualisierung der Deduction Guides für static operator ( ) P1169R4 13 16 19.39* 15.0.0*
Standardnamen und Bibliotheksunterstützung für erweiterte Gleitkommatypen P1467R9 13 19.37* *
Monadische Operationen für std::expected ( FTM ) * P2505R5 13 17 19.36* 15.0.0*
views::enumerate ( FTM ) * P2164R9 13 19.37*
std::is_implicit_lifetime ( FTM ) * P2674R1 20
std::common_reference_t von std::reference_wrapper sollte ein Referenztyp sein  ( FTM ) * ( FTM ) * P2655R3 19.37*
Unterbindung der Benutzerspezialisierung von std::allocator_traits P2652R2 19 19.37*
Veraltung von std::numeric_limits::has_denorm P2614R2 18 19.37* 16.0.0*
Mehrparametrige Konstruktoren von view s explicit machen P2711R1 17 (teilweise)* 19.36* * 15.0.0*
DR20: Ranges Geringfügig Lockern  ( FTM ) * P2609R3 15 20 19.37*
DR20: Stashing Stashing Iterators For Proper Flattening P2770R0 14 18 19.37*
DR17: std::visit() für Klassen abgeleitet von std::variant ( FTM ) * P2162R2 11.3 13 19.20* *
19.30*
13.1.6*
DR20: Bedingt entliehene Ranges P2017R1 11 16 19.30*
DR20: Reparatur von Input-Range-Adaptoren und std::counted_iterator P2259R1 12 19.30* (teilweise)*
19.31*
DR20: views::join sollte alle Views von Ranges verbinden P2328R1 11.2 15 19.30* 14.0.3*
DR20: view erfordert nicht default_initializable ( FTM ) * P2325R3 11.3 16 19.30* 15.0.0*
DR20: Bereichsadapterobjekte binden Argumente als Wert P2281R1 11 14 19.29 (16.10)*
(teilweise)*
19.31*
14.0.3*
DR20: constexpr für std::optional und std::variant ( FTM ) * ( FTM ) * P2231R1 11.3 (teilweise)*
12
13 (teilweise)*
19
19.31* 13.1.6* (teilweise)
DR20: views::lazy_split und überarbeitetes views::split P2210R2 12 16 19.31* 15.0.0*
DR20: Korrektur ranges::istream_view P2432R1 12 16 19.31* 15.0.0*
DR20: view mit Besitzrechten  ( FTM ) * P2415R2 12 14 19.31* 14.0.3*
DR20: Korrektur der Locale-Behandlung in Chrono-Formatierern  ( FTM ) * P2372R3
P2418R2
13 19.31*
DR20: Bereinigung von Integer-Class-Typen P2393R1 19.32*
DR20: Kompilierzeit-Formatstring-Prüfungen; Reduzierung der Binärcodegröße der std::format() Familie  ( FTM ) * P2216R3 13 14 (teilweise)*
15
19.32* 14.0.3*
DR20: Unterstützung für nicht-konstante formatierbare Typen zu std::format P2418R2 13 15 19.32* 14.0.3*
DR20: std::basic_format_string P2508R1 13 15 19.35* 14.0.3*
DR20: Poison Pills sind zu toxisch  ( FTM ) * P2602R2 14 19 19.36*
DR20: std::format Füllzeichen-Erlaubnisse P2572R1 14 17 19.37*
DR20: Verbesserung der std::format -Breitenschätzung P2675R1 14 17 19.38*
DR20: std::barrier 's Phasenabschlussgarantien  ( FTM ) * P2588R3 19.28 (16.8)* *
19.36*


C++23-Funktion


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

C++20-Funktionen

C++20 Kernsprachfunktionen

**Änderungen:** - "Attributes" → "Attribute" (Singular, da es sich um ein zusammenhängendes Attribut-Paar handelt) - "and" → "und" - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe ("likely", "unlikely") wurden nicht übersetzt **Übersetzte Textteile:** - "in" → "in" (bleibt gleich, da es bereits Deutsch ist) - "lambda init-captures" → "Lambda-Init-Captures" (technischer C++ Begriff, leicht angepasst an deutsche Schreibweise) - "FTM" → "FTM" (Akronym bleibt unverändert) **Nicht übersetzte Elemente:** - HTML-Tags und Attribute - ` `/` `-Inhalte ("Pack-expansions") - C++-spezifische Begriffe - Versionsnummern und technische Bezeichnungen - Feature-Test-Makro-Text **Übersetzungserläuterungen:** - "Destroying" wurde als "Zerstörender" übersetzt (technisch korrekte Übersetzung im C++-Kontext) - "operator delete" blieb unübersetzt (C++-spezifischer Begriff) - "Feature-testing macro" wurde als "Feature-Test-Makro" übersetzt - "FTM" blieb unübersetzt (Abkürzung) - Alle HTML-Tags, Attribute und Zahlenwerte wurden original beibehalten - Der Code innerhalb der ` `-Tags wurde nicht übersetzt **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle sichtbaren Texte entweder C++-spezifische Begriffe (`std::is_constant_evaluated()`, `FTM`, `P0595R2`) sind - Oder numerische Versionsangaben - Oder innerhalb von ` `-Tags stehen - Die Titelattribute wurden gemäß Anforderung nicht übersetzt Das HTML-Format und alle Tags wurden original erhalten. **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `constinit` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` (Feature Testing Macro) ebenfalls ein C++-spezifischer Begriff ist - Alle anderen numerischen Werte und Codes (Versionsnummern, Dokumentenreferenzen) bleiben unverändert - Die HTML-Tags und Attribute wurden gemäß den Anweisungen beibehalten **Hinweis:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `using enum` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` ein Akronym für "Feature Testing Macro" ist und ebenfalls nicht übersetzt wird - Alle anderen Elemente sind numerische Werte, HTML-Tags oder Attribute - Der Titel-Text `Feature-testing macro: __cpp_using_enum = 201907L` ist technischer Natur und wird gemäß den Anweisungen nicht übersetzt
C++20-Funktion

Paper(s)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Erlaube Lambda-Capture [ = , this ] P0409R2 8 6 19.22* 10.0.0* 5.1 2021.1 20.7 12.0 11.0
__VA_OPT__ P0306R4
P1042R1
8 (teilweise)*
10 (teilweise)*
12
9 19.25* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Designierte Initialisierer ( FTM ) * P0329R4 4.7 (teilweise)*
8
3.0 (teilweise)*
10
19.21* 12.0.0* 5.1 2021.1 20.7 12.0 11.0
Template-Parameterliste für generische Lambdas ( FTM ) * P0428R2 8 9 19.22* 11.0.0* 5.1 2021.1 20.7 12.0 11.0
Standardmember-Initialisierer für Bitfelder P0683R1 8 6 19.25* 10.0.0* 5.1 2021.1 20.7 12.0 11.0
Initialisierungslistenkonstruktoren bei Klassentemplate-Argumentableitung P0702R1 8 6 19.14* Ja 5.0 2021.1 20.7 12.0 11.0
const & -qualifizierte Zeiger auf Member P0704R1 8 6 19.0 (2015)* 10.0.0* 5.1 2021.1 20.7 12.0 11.0
Konzepte ( FTM ) * P0734R0 5*
10
10 19.23* (teilweise)*
19.30*
12.0.0* (teilweise) 6.1 2023.1* 20.11 12.0 11.0
Lambdas in unevaluated contexts P0315R4 9 13 (teilweise)*
14 (teilweise)*
17
19.28 (16.8)* 13.1.6* (teilweise) 6.2 2023.1 (teilweise)
2024.0
20.7 12.0
Drei-Wege-Vergleichsoperator ( FTM ) * P0515R3 10 8 (teilweise)
10
19.20* 12.0.0* 5.1 2021.1 20.7 12.0 11.0
DR11: Vereinfachung der impliziten Lambda-Erfassung P0588R1 8 19.24* 5.1 2021.1 20.7 12.0
Init-Anweisungen für bereichsbasierte for-Schleifen P0614R1 9 8 19.25* 11.0.0* 6.0 2021.7 20.11 12.0 11.0
Standardmäßig konstruierbare und zuweisbare zustandslose Lambdas P0624R2 9 8 19.22* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
Typinkonsistenz von speziellen Standard-Memberfunktionen P0641R2 9 (teilweise)* 8 19.0 (2015)* (teilweise)* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
Zugriffsprüfung bei Spezialisierungen P0692R1 Ja 8 (teilweise)
14
19.26* 14.0.0* 5.1 2021.1 20.7 12.0
ADL und nicht sichtbare Funktionsvorlagen P0846R0 9 9 19.21* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
DR11: Spezifizieren, wann constexpr Funktionsdefinitionen für konstante Auswertung benötigt werden ( FTM ) * P0859R0 5.2 (teilweise)*
9
8 19.27* (teilweise)*
19.31* *
11.0.0* (teilweise) 12.0 11.0
Attribute [[ likely ]] und [[ unlikely ]] P0479R5 9 12 19.26* 13.0.0* 5.1 2021.7 20.7 12.0
Mache typename optionaler P0634R3 9 16 19.29 (16.10)* 16.0.0* 5.1 2023.1 20.7 12.0
Pack-expansions in Lambda-Init-Captures ( FTM ) * P0780R2 9 9 19.22* 11.0.3* 6.1 2021.7 20.11 12.0 11.0
Attribut [[ no_unique_address ]] P0840R2 9 9 19.28 (16.9)* * 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Bedingt triviale spezielle Elementfunktionen  ( FTM ) * P0848R3 10 16 19.28 (16.8)* 6.1 2021.7 20.11 12.0
DR17: Lockerung der structured bindings Anpassungspunkt-Suchregeln P0961R1 8 8 19.20* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
DR11: Lockerung der range-for Schleifen-Anpassungspunkt-Suchregeln P0962R1 8 8 19.25* 11.0.0* 5.1 2021.1 20.7 12.0 11.0
DR17: Strukturierte Bindungen für zugängliche Member erlauben P0969R0 8 8 19.20* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
Zerstörender operator delete ( FTM ) * P0722R3 9 6 19.27* 10.0.0* 6.1 2023.1 20.11 12.0 11.0
Klassentypen in Konstanten Template-Parametern P0732R2 9 12 (teilweise) 19.26* (teilweise)*
19.28 (16.9)*
13.0.0* (teilweise) 6.2 2023.1 (teilweise) 21.3 12.0
Veralte die implizite Erfassung von this mittels [=] P0806R2 9 7 19.22* 10.0.1* 5.1 20.7 12.0 11.0
explicit(bool) ( FTM ) * P0892R2 9 9 19.24* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Integration von Feature-Test-Makros P0941R2 5 3.4 19.15* (teilweise)
19.20*
Ja 5.0 2021.1 20.7 12.0 11.0
Aggregate mit benutzerdefinierten Konstruktoren verbieten P1008R1 9 8 19.20* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
constexpr virtuelle Funktion ( FTM ) * P1064R0 9 9 19.28 (16.9)* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Konsistenzverbesserungen für Vergleiche P1120R0 10 8 (teilweise)
10
19.22* 12.0.0* 5.1 2023.1 20.7 12.0 11.0
char8_t ( FTM ) * P0482R6 9 7* 19.22* 10.0.0* 5.1 2021.1 20.7 12.0 11.0
std::is_constant_evaluated() ( FTM ) * P0595R2 9 9 19.25* 11.0.3* 5.1 19.1 21.1 12.0 11.0
constexpr try - catch Blöcke P1002R1 9 8 19.25* 10.0.1* 5.1 2023.1 20.7 12.0 11.0
Unmittelbare Funktionen ( consteval )  ( FTM ) * P1073R3 10 (teilweise)*
11
11 (teilweise)
14 (teilweise)*
17
19.28 (16.8)*
(teilweise)*

19.29 (16.10)*
11.0.3* (teilweise)
15.0.0*
5.1 2021.1 20.7 12.0
Verschachtelte Inline-Namespaces P1094R2 9 8 19.27* 10.0.1* 5.1 2021.1 20.7 12.0 11.0
Ein weiterer Ansatz für constrained declarations P1141R2 10 10 19.26* (partial)
19.28 (16.9)*
12.0.5* 6.1 2023.1 20.11 12.0 11.0
Vorzeichenbehaftete Ganzzahlen verwenden Zweierkomplement P1236R1 9 9 Yes 11.0.3* N/A 2023.1* yes* 12.0 11.0
dynamic_cast und polymorphes typeid in konstanten Ausdrücken P1327R1 10 9 19.28 (16.9)* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Ändern des aktiven Members einer Union innerhalb von constexpr ( FTM ) * P1330R0 9 9 19.10* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Coroutinen ( FTM ) * ( FTM ) * P0912R5
LWG3393
10 8 (teilweise)
17 (teilweise)*
19.0 (2015)* (teilweise)
19.10* *
19.28 (16.8)*
10.0.1* (teilweise) 5.1 2021.1 23.3* 12.0 (nur Host-Code)
Geklammerte Initialisierung von Aggregaten ( FTM ) * P0960R3 10 16 19.28 (16.8)* 16.0.0* 5.1 2021.1 20.7 12.0
DR11: Arraygrößenableitung in new -Ausdrücken P1009R2 11 9 19.27* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Module ( FTM ) * P1103R3 11 (teilweise) 8 (teilweise) 19.0 (2015)* (teilweise)
19.10* *
19.28 (16.8)*
10.0.1* (teilweise) 2023.1 (teilweise)
Stärkere Unicode-Anforderungen P1041R4
P1139R2
10 Ja 19.0 (2015)* *
19.26* *
Ja N/A 2023.1* Ja 12.0 11.0
<=> != == P1185R2 10 10 19.22* 12.0.0* 5.1 2021.1 20.7 12.0 11.0
DR11: Explizit defaultete Funktionen mit unterschiedlichen Ausnahmespezifikationen P1286R2 10 9 19.28 (16.8)* 11.0.3* 5.1 2021.1 20.7 12.0 11.0
Lambda-Capture und Speicherklassenspezifizierer von Structured Bindings P1091R3
P1381R1
10 8 (teilweise)
16
19.11* *
19.24* *
16.0.0* 5.1 2021.1 20.7 12.0
Konvertierungen zu Arrays unbekannter Größe erlauben P0388R4 10 14 19.27* 14.0.0* 6.0 2021.5 20.11 12.0
constexpr Container-Operationen  ( FTM ) * P0784R7 10 10 19.28 (16.9)* 12.0.0* 6.0 2021.5 20.11 12.0 11.0
Veraltung einiger Verwendungen von volatile P1152R4 10 10 19.27* 12.0.0* 6.0 2021.5 20.11 12.0 11.0
constinit ( FTM ) * P1143R2 10 10 19.29 (16.10)* 12.0.0* 6.1 2021.7 20.11 12.0 11.0
Kommaoperator in Indizes als veraltet kennzeichnen P1161R3 10 9 19.25* 11.0.3* 6.0 2021.7 20.11 12.0 11.0
[[ nodiscard ]] mit Nachricht P1301R4 10 9 19.25* 11.0.3* 6.0 2021.5 20.11 12.0 11.0
Triviale Standardinitialisierung in constexpr Funktionen P1331R2 10 10 19.27* 12.0.0* 6.1 2021.7 20.11 12.0 11.0
Nicht ausgewertete asm -Deklaration in constexpr -Funktionen P1668R1 10 10 19.28 (16.9)* 12.0.0* 6.1 2021.7 20.11 12.0 11.0
using enum ( FTM ) * P1099R5 11 13 19.24* 13.1.6* 6.3 2023.1 22.5 12.0
Synthetisierung des Three-way comparison für spezifizierte Vergleichskategorie P1186R3 11 10 19.24* 12.0.0* 6.0 2021.5 20.11 12.0 11.0
DR17: [[ nodiscard ]] für Konstruktoren P1771R1 10 9 19.24* 11.0.3* 6.0 2021.5 20.11 12.0 11.0
Klassentemplate-Argumentdeduktion für Aliastemplates  ( FTM ) * P1814R0 10 19 19.27* 6.5 23.9 12.0
Klassentemplate-Argumentdeduktion für Aggregate  ( FTM ) * P1816R0
P2082R1
10*
11*
17 19.27* 6.3 2023.1 (teilweise)*
2024.1
23.3 12.0
DR11: Implizites Move für mehr lokale Objekte und Rvalue-Referenzen P1825R0 11* 13 19.24* 13.1.6* 6.0 2021.5 20.11 12.0
Vergleichsoperatoren standardmäßig nach Wert ermöglichen P1946R0 10 10 19.25* 12.0.0* 6.1 2021.7 20.11 12.0 11.0
Entferne std::weak_equality und std::strong_equality P1959R0 10 10 19.25* 12.0.0* 6.1 2021.7 20.11 12.0 11.0
Inkonsistenzen bei konstanten Template-Parametern  ( FTM ) * P1907R1 10 (teilweise)
11
18 (teilweise)* 19.26* 13.1.6* (teilweise) 6.2 2023.1 (teilweise) 21.3 12.0
DR98: Pseudo-Destruktoren beenden Objektlebensdauern P0593R6 11 11 Ja 12.0.5* N/A 2023.1* Ja 12.0 11.0
DR11: Die Konvertierung von T * zu bool sollte als einschränkend betrachtet werden P1957R2 10*
11*
11 19.27* 12.0.5* 6.1 12.0 11.0


C++20-Funktionalität


Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++20-Bibliotheksfunktionen

**Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Alle sichtbaren Texte C++-spezifische Begriffe sind (`std::endian`, `FTM`, `P0463R1`) - Die numerischen Werte und Versionsnummern bleiben unverändert - Die Titelattribute enthalten technische Informationen, die nicht übersetzt werden sollen - HTML-Tags und Attribute wurden gemäß Anforderung beibehalten **Übersetzungserläuterungen:** - "Synchronized buffered" wurde als "Synchronisierter gepufferter" übersetzt (technisch korrekte Übersetzung für C++ Kontext) - HTML-Tags, Attribute und alle Formatierungen wurden unverändert beibehalten - ` `-Inhalt `std::basic_osyncstream` wurde nicht übersetzt (C++-spezifischer Begriff) - "FTM" (Feature Testing Macro) wurde nicht übersetzt (C++-spezifischer Begriff) - Versionsnummern und technische Bezeichnungen (P0053R7) blieben unverändert - Der Tooltip-Text im `title`-Attribut wurde nicht übersetzt, da er Code enthält **Übersetzte Elemente:** - "Feature-testing macro" → "Feature-Test-Makro" - "beta" → "Beta" **Nicht übersetzte Elemente:** - Alle HTML-Tags und Attribute - C++-spezifische Begriffe (`std::remove_cvref`, `__cpp_lib_remove_cvref`, `FTM`) - Versionsnummern und technische Bezeichnungen - Code-ähnliche Elemente **Übersetzungsdetails:** - "Atomic" → "Atomare" (fachlich korrekte Übersetzung im C++-Kontext) - "and" → "und" - HTML-Tags, Attribute und alle ` `-Elemente (`std::shared_ptr`, `std::weak_ptr`) wurden unverändert belassen - Technische Begriffe und Makronamen wurden nicht übersetzt - Die Formatierung und Struktur des HTML-Codes bleibt vollständig erhalten **Erklärung:** Da der Text hauptsächlich aus C++-spezifischen Begriffen (`std::span`, `FTM`, `P0122R7`), Code-Referenzen und numerischen Versionsangaben besteht, die gemäß den Anweisungen nicht übersetzt werden dürfen, bleibt der HTML-Code unverändert. Die einzigen übersetzbaren Elemente (wie "Feature-testing macro") sind innerhalb von HTML-Attributen (`title`) enthalten, die ebenfalls nicht übersetzt werden sollen. **Anmerkung:** - HTML-Tags, Attribute und Code-Blöcke wurden unverändert belassen - C++-spezifische Begriffe wie ` ` und P0754R2 wurden nicht übersetzt - Die numerischen Versionsangaben und Formatierungen bleiben erhalten **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `std::atomic_ref` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` (Feature Testing Macro) ebenfalls ein C++-spezifischer Begriff ist - Die Zahlen und Codes (10, 19, P0019R8, etc.) bleiben unverändert - Die HTML-Tags und Attribute wurden gemäß Anforderung beibehalten Das Fragment enthält nur technische Bezeichnungen und numerische Werte, die in der Übersetzung unverändert bleiben müssen. **Erläuterung der Übersetzung:** - Alle HTML-Tags, Attribute und C++-spezifischen Begriffe (`std::bit_cast()`, `FTM`, `P0476R2`) wurden unverändert belassen - Die Zahlen und Versionsangaben wurden nicht übersetzt - Der Titel-Tooltip wurde ins Deutsche übersetzt: "Feature-testing macro" → "Feature-Test-Makro" - Die Struktur und Formatierung des HTML-Codes bleibt vollständig erhalten **Anmerkung:** Die Übersetzung war nicht erforderlich, da der Text gemäß den Anweisungen keine übersetzbaren Inhalte enthält: - Alle HTML-Tags und Attribute wurden beibehalten - C++-spezifische Begriffe wie `std::destroying_delete_t` wurden nicht übersetzt - Der Text innerhalb der Tags besteht aus technischen Bezeichnungen, Versionsnummern und Codes **Übersetzungsdetails:** - "Add" wurde zu "Hinzufügen von" übersetzt - "to" wurde zu "zu" übersetzt - HTML-Tags, Attribute und Code-Bereiche (` `, ` `) wurden unverändert belassen - C++-spezifische Begriffe wie `std::shift_left/right`, ` `, FTM, Feature-testing macro wurden nicht übersetzt - Die Formatierung und Struktur des HTML-Codes wurde vollständig beibehalten **Änderungen:** - "and" → "und" (Konjunktion) - "Feature-testing macro" → "Feature-Test-Makro" (technischer Begriff) - Alle HTML-Tags, Attribute, Code-Blöcke und C++-spezifischen Begriffe wurden beibehalten - Die Formatierung und Struktur bleibt unverändert **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - `std::bind_front()` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `FTM` (Feature Testing Macro) ebenfalls ein C++-spezifischer Begriff ist - Alle anderen Elemente sind entweder HTML-Tags, Attribute, Zahlen oder Links - Der Tooltip-Text `"Feature-testing macro: __cpp_lib_bind_front = 201907L"` ist technischer Natur und wird gemäß den Anweisungen nicht übersetzt Das HTML bleibt daher unverändert. **Übersetzte Elemente:** - Tooltip-Text: "not constexpr until 9.4 and 10.3" → "nicht constexpr bis 9.4 und 10.3" - Alle HTML-Tags, Attribute, C++-spezifische Begriffe und Code-Elemente wurden unverändert beibehalten **Erklärung der Übersetzung:** - Alle HTML-Tags, Attribute und technischen Bezeichner wurden unverändert belassen - C++-spezifische Begriffe wie `constexpr`, `std::string`, `FTM` (Feature Testing Macro) wurden nicht übersetzt - Die Versionsnummern und technischen Referenzen (P0426R1 etc.) bleiben unverändert - Der Titel-Text "Feature-testing macro: __cpp_lib_constexpr_string = 201907L" wurde nicht übersetzt, da er innerhalb eines HTML-Attributs steht - Die Formatierung und Struktur der Tabelle bleibt vollständig erhalten **Übersetzte Elemente:** - "for" → "für" - "numeric algorithms" → "numerische Algorithmen" **Beibehaltene Elemente:** - Alle HTML-Tags und Attribute - `constexpr` (C++-spezifischer Begriff) - Text innerhalb von ` ` (Code-Bereich) - FTM (Abkürzung) - P1645R1 (Dokumentenreferenz) - Alle numerischen Werte und Versionsnummern - Tooltip-Texte
C++20-Funktionalität

Paper(s)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
std::endian ( FTM ) * P0463R1 8 7 19.22* 10.0.0*
Erweiterung von std::make_shared() zur Unterstützung von Arrays  ( FTM ) * P0674R1 12 15 19.27* 14.0.3*
Gleitkomma-Atomare ( FTM ) * P0020R6 10 18 19.22* 16.0.0*
Synchronisierter gepufferter ( std::basic_osyncstream )  ( FTM ) * P0053R7 11 18 19.29 (16.10)*
constexpr für <algorithm> und <utility> ( FTM ) * P0202R3 10 8 (teilweise)
12
19.26* 10.0.1* (teilweise)
13.0.0*
Mehr constexpr für <complex> ( FTM ) * P0415R1 9 7 (teilweise)
16
19.27* 10.0.0* (teilweise)
15.0.0*
Mache std::memory_order zu einer scoped enumeration P0439R0 9 9 19.25* 11.0.3*
String Präfix und Suffix Überprüfung: string (_view) ::starts_with / ends_with ( FTM ) * P0457R2 9 6 19.21* 10.0.0*
Bibliotheksunterstützung für operator<=> <compare> ( FTM ) * P0768R1 10 7 (teilweise)
12 (teilweise)*
17
19.20* (teilweise)
19.28 (16.9)*
13.0.0*
std::remove_cvref ( FTM ) * P0550R2 9 6 19.20* 10.0.0*
[[ nodiscard ]] in der Standardbibliothek P0600R1 9 7 (teilweise)
16
19.13* (teilweise)
19.22*
10.0.0* (teilweise)
15.0.0*
Verwendung von std::move in numerischen Algorithmen P0616R0 9 12 19.23* 13.0.0*
Utility zum Konvertieren eines Zeigers in einen Rohzeiger  ( FTM ) * P0653R2 8 6 19.22* Ja
Atomare std::shared_ptr und std::weak_ptr ( FTM ) * P0718R2 12 19.27*
std::span ( FTM ) * P0122R7 10 7 19.26* 10.0.0*
Kalender und Zeitzone ( FTM ) * P0355R7 11 (teilweise)*
13 (teilweise)*
14
7 (teilweise)
19 ( teilweise )*
19.29 (16.10)* 10.0.0* (teilweise)
<version> P0754R2 9 7 19.22* 10.0.0*
Vergleich ungeordneter Container P0809R0 Ja Ja 16.0* Ja
ConstexprIterator Anforderungen  ( FTM ) * ( FTM ) * P0858R0 9 12 19.11* 13.0.0*
std::basic_string::reserve() sollte nicht verkleinern P0966R1 11 8 19.25* 10.0.1*
Atomarer Compare-And-Exchange mit Padding-Bits P0528R3 13 19.28 (16.8)*
std::atomic_ref ( FTM ) * P0019R8 10 19 19.28 (16.8)*
contains ( ) Member-Funktion assoziativer Container, z.B. std::map::contains() P0458R2 9 13 19.21* 13.1.6*
DR11: Garantierte Kopiereliminierung für stückweise Konstruktion P0475R1 9 Ja 19.29 (16.10)* Ja
std::bit_cast() ( FTM ) * P0476R2 11 14 19.27* 14.0.3*
Ganzzahlige Zweierpotenz- 2 Operationen :

std::bit_ceil() , std::bit_floor() , std::bit_width() , std::has_single_bit() ( FTM ) *

P0556R3
P1956R1
9*
10*
9*
12*
19.25* *
19.27* *
19.28 (16.8)*
11.0.3* *
13.0.0* *
Verbesserung des Rückgabewerts von erase-ähnlichen Algorithmen  ( FTM ) * P0646R1 9 10 19.21* 12.0.0*
std::destroying_delete_t ( FTM ) * P0722R3 9 9 19.27* 11.0.3*
std::is_convertible ( FTM ) * P0758R1 9 9 19.23* 11.0.3*
Hinzufügen von std::shift_left/right zu <algorithm> ( FTM ) * P0769R2 10 12 19.21* 13.0.0*
Constexpr für std::swap() und swap verwandte Funktionen P0879R0 10 13 19.26* 13.1.6*
std::type_identity ( FTM ) * P0887R1 9 8 19.21* 10.0.1*
Concepts-Bibliothek ( FTM ) * P0898R3 10 13 19.23* 13.1.6*
constexpr Vergleichsoperatoren für std::array P1023R0 10 8 19.27* 10.0.1*
std::unwrap_ref_decay und std::unwrap_reference ( FTM ) * P0318R1 9 8 19.21* 10.0.1*
std::bind_front() ( FTM ) * P0356R5 9 13 19.25* 13.1.6*
std::reference_wrapper für unvollständige Typen P0357R3 9 8 19.26* 10.0.1*
Korrektur von operator>>(basic_istream&, CharT*) P0487R1 11 8 19.23* 10.0.1*
Bibliotheksunterstützung für char8_t ( FTM ) * P0482R6 9 8 (teilweise)
16
19.22* 10.0.1* (teilweise)
15.0.0*
Hilfsfunktionen zur Implementierung von Uses-Allocator Konstruktion P0591R4 9 16 19.29 (16.10)* 15.0.0*
DR17: std::variant und std::optional sollten Trivialität von Kopie/Verschiebung propagieren P0602R4 8.3 8 19.11* 10.0.1*
DR17: Ein vernünftiger std::variant Konvertierungskonstruktor P0608R3 10 9 19.29 (16.10)* *
19.42* *
11.0.3*
std::function s Move-Konstruktor sollte noexcept sein P0771R1 7.2 6 19.22* Ja
Der One Ranges Vorschlag ( FTM ) * P0896R4 10 13 (teilweise)
15*
19.29 (16.10)* 14.0.3*
Heterogener Lookup für ungeordnete assoziative Container ( FTM ) * P0919R3
P1690R1
11 12 19.23* (P0919R3)
19.25* (P1690R1)
13.0.0*
<chrono> zero() , min() , und max() sollten noexcept sein P0972R0 9 8 19.14* 10.0.1*
constexpr in std::pointer_traits ( FTM ) * P1006R1 9 8 19.26* 10.0.1*
std::assume_aligned() ( FTM ) * P1007R3 9*
11
15 19.28 (16.9)* 14.0.3*
Erstellung von Smart Pointern mit Standardinitialisierung (z.B. make_unique_for_overwrite )  ( FTM ) * P1020R1
P1973R1
11*
12*
16 19.28 (16.9)* 15.0.0*
Verschiedenes constexpr Bits  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P1032R1 10 13 19.28 (16.8)* 13.1.6*
Vergleichsoperatoren von std::span entfernen P1085R2 10 8 19.26* 10.0.1*
Zustandsbehaftete Allokator-Propagation konsistenter gestalten für operator+(basic_string) P1165R1 10 15 19.26* 14.0.3*
Konsistente Container-Löschung, z.B. std::erase(std::vector) , oder std::erase_if(std::map) ( FTM ) * P1209R0
P1115R3
9*
10*
8*
11*
19.25* *
19.27* *
10.0.1* *
12.0.5* *
Standardbibliothek-Header-Einheiten P1502R1 11 19.29 (16.10)*
polymorphic_allocator<> als Vokabular-Typ  ( FTM ) * P0339R6 9 16 19.28 (16.9)* 15.0.0*
std::execution::unseq ( FTM ) * P1001R2 9 17 19.28 (16.8)*
std::lerp() und std::midpoint() ( FTM ) * P0811R3 9 9 19.23* (teilweise)
19.28 (16.8)*
11.0.3*
Benutzerfreundlichkeitsverbesserungen für std::span P1024R3 10 9*
14
19.26* 11.0.3*
DR17: Mache std::create_directory() intuitiv P1164R1 8.3 12 19.20* 13.0.0*
std::ssize() und unsignierter Umfang für std::span ( FTM ) * P1227R2 10 9 19.25* 11.0.3*
Eigenschaften für ( un ) begrenzte Arrays  ( FTM ) * P1357R1 9 9 19.25* 11.0.3*
std::to_array() ( FTM ) * P0325R4 10 10 19.25* 12.0.0*
Effizienter Zugriff auf den Puffer von std::basic_stringbuf P0408R7 11 17 19.29 (16.10)* 15.0.0*
Layout - Kompatibilität und Zeiger - Interkonvertierbarkeit Traits  ( FTM ) * ( FTM ) * P0466R5 12 19.29 (16.10)* *
Bitoperationen : std ::

rotl() , rotr() , countl_zero() , countl_one() , countr_zero() , countr_one() , popcount() ( FTM ) *

P0553R4 9 9 19.25* *
19.28 (16.8)*
11.0.3*
Mathematische Konstanten ( FTM ) * P0631R8 10 11 19.25* 12.0.5*
Textformatierung ( FTM ) * P0645R10 13 14 * *
17
19.29 (16.10)* 15.0.0*
std::stop_token und std::jthread ( FTM ) * P0660R10 10 17
(teilweise)*

20*
19.28 (16.9)*
constexpr std::allocator und zugehörige Hilfsmittel  ( FTM ) * P0784R7 10 12 19.29 (16.10)* 13.0.0*
constexpr std::string ( FTM ) * P0426R1
P1032R1
P0980R1
12 15 19.29 (16.10)*
19.30* *
14.0.3*
constexpr std::vector ( FTM ) * P1004R2 12 15 19.29 (16.10)*
19.30* *
14.0.3*
Eingabe Range-Adapter P1035R7 10 16 19.29 (16.10)* 15.0.0*
constexpr std::invoke() und zugehörige Hilfsfunktionen P1065R2 10 12 19.28 (16.8)* 13.0.0*
Atomares Warten und Benachrichtigen, std::counting_semaphore , std::latch und std::barrier ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P1135R6 11 11 19.28 (16.9)* 13.1.6*
std::source_location ( FTM ) * P1208R6 11 15*
(teilweise)
16
19.29 (16.10)* 15.0.0*
Hinzufügen von <=> zur Standardbibliothek P1614R2 10 14*
(teilweise)
17*
(teilweise)
19
19.29 (16.10)* 13.1.6* (teilweise)
constexpr Standardkonstruktor von std::atomic und std::atomic_flag ( FTM ) * P0883R2 10 13 19.26* 13.1.6*
constexpr für numerische Algorithmen ( FTM ) * P1645R1 10 12 19.26* 13.0.0*
Sichere Ganzzahlvergleiche ( FTM ) * P0586R2 10 13 19.27* 13.1.6*


C++20-Funktionalität


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

Ältere Standards

Siehe auch

Feature-Testing (C++20) Ein Satz von Präprozessor-Makros zum Testen der entsprechenden C++-Sprach- und Bibliotheksfunktionen
C-Dokumentation für Compiler-Unterstützung