Compiler-Unterstützung für C++29
Von de.cppreference.net
* - Bewegen Sie die Maus über eine mit dem Stern * markierte Zelle, um zusätzliche Pop-up-Notizen anzuzeigen.
DRnn – die Nummer nn nach "DR" bezeichnet die Ziel-C++-Revision, auf die der Defect Report angewendet wird, z.B. DR20 → C++20.
C++29 Kernsprachenfeatures
| C++29 Feature |
Papier(e) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
#embed offset parameter (FTM)*
|
P3540R3 | ||||||||||
| Contracts für virtuelle Funktionen (FTM)* | P3097R3 | ||||||||||
| Pack-Indexierung für Templates (FTM)* | P3670R4 | ||||||||||
| Designated-Initialisierer für Basisklassen (FTM)* | P2287R6 | ||||||||||
| Freigabefunktionen mit werfender Ausnahmespezifikation sind fehlerhaft | P3424R2 | ||||||||||
| Bedingte noexcept-Spezifizierer in zusammengesetzten Anforderungen (FTM)* | P3822R2 | ||||||||||
| Defaulting von Postfix-Inkrement- und -Dekrement-Operatorfunktionen | P3668R4 | ||||||||||
| Hinzufügen von Einschränkungen für defaulted Zuweisungsoperatorfunktionen | P2953R5 | ||||||||||
| DR26: Nur-consteval-Werte (FTM)* | P4101R1 | ||||||||||
| DR23: Zulassen von Figment und Abkürzung in benannten universellen Zeichenescapesequenzen | P3733R1 | ||||||||||
| DR20: Aufheben der gegenseitigen Ausschließlichkeit für Coroutine-Promise-Rückgabefunktionen (FTM)* | P3950R1 | ||||||||||
| DR: Anpassen von Bezeichnern gemäß neuen Unicode-Empfehlungen | P3658R1 | ||||||||||
| DR: Expliziter Lambda-Capture wird in lexikalischer Reihenfolge deklariert und initialisiert | P3847R1 | 3.1 | |||||||||
| DR: Zulassen von C-Sprachbindung für Templates | P2243R0 | ||||||||||
| DR: Klarstellung des Verhaltens von Gleitkommaüberlauf | P3899R3 | ||||||||||
| DR: Nichtdeterministische Zeigerherkunft | P2434R5 | ||||||||||
| DR: Behebung des Zeigerlebensdauer-Ende-Zap für atomare und volatile Zugriffe | P2414R12 | ||||||||||
| DR: Definieren von Lade- und Speicheroperationen für ungültige Zeiger | P3347R6 | ||||||||||
| C++29 Feature |
Papier(e) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (ex PGI)* |
Nvidia nvcc |
Cray |
C++29 Bibliotheksfeatures
| C++29 Feature |
Papier(e) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
|
|---|---|---|---|---|---|---|
| Bessere Suchfunktion für Map-Container (FTM)* | P3091R6 | |||||
| Zeiger-Tagging (FTM)* | P3125R6 | |||||
| Thread-Attribute (FTM)* | P2019R9 | |||||
| Hazard-Pointer-Batches (FTM)* | P3428R4 | |||||
| Bit-Permutationen (FTM)* (FTM)* | P3104R6 P3772R2 |
|||||
| std::shl und std::shr (FTM)* (FTM)* | P3793R2 | |||||
| std::mdspan Kopier- und Fülloperationen (FTM)* | P3242R4 | |||||
| std::simd::iota (FTM)* | P3319R6 | |||||
| std::expected::has_error() (FTM)* | P3798R1 | |||||
| view_interface::at() (FTM)* | P3052R2 | |||||
| std::formatter<std::error_code> | P3395R6 | |||||
| Behebung der standardmäßigen Gleitkommadarstellung in std::to_chars (FTM)* | P3505R4 | |||||
| Erfordern von std::intptr_t und std::uintptr_t | P3248R5 | |||||
| Deprekation von signed-Zeichentypen in I/O-Streams | P3154R3 | |||||
| DR26: Rückgängigmachen der String-Literal-Unterstützung in std::constant_wrapper (FTM)* | P4206R0 | 17 | ||||
| C++29 Feature |
Papier(e) |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |