C compiler support
From cppreference.net
<
c
|
|
Diese Seite wird nach bestem Wissen und Gewissen gepflegt, könnte jedoch hinter den neuesten Compiler-Versionen zurückbleiben. Wenn Sie etwas Veraltetes bemerken, helfen Sie uns bitte durch eine Aktualisierung! |
Inhaltsverzeichnis |
C23-Funktionen
Beachten Sie, dass diese Liste sich ändern kann, während sich der Entwurf des C23/2x-Standards weiterentwickelt.
C23-Kernsprachfunktionen
|
Dieser Abschnitt ist unvollständig
Grund: Status für Apple Clang und andere Compiler mit C2x-Unterstützung |
|
C23-Funktion
|
Dokument(e)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| static_assert ohne Nachricht | N2265 | 9 | 9 | Ja | Ja | 6.5 | 2021.1.2 (clang based) | ||||
[[
nodiscard
]]
|
N2267 | 10 | 9 | Ja | 6.4 | 2021.1.2 (clang based) | |||||
[[
maybe_unused
]]
|
N2270 | 10 | 9 | Ja | 6.4 | 2021.1.2 (clang based) | |||||
[[
deprecated
]]
|
N2334 | 10 | 9 | Ja | 6.4 | 2021.1.2 (clang basiert) | |||||
| Attribute |
N2335
N2554 |
10 | 9 | Ja | 6.4 | 2021.1.2 (clang based) | |||||
| IEEE 754 Dezimal-Gleitkommatypen | N2341 |
4.2
(teilweise)*
12 |
13.0 (teilweise)* | ||||||||
[[
fallthrough
]]
|
N2408 | 10 | 9 | Ja | 6.4 | 2021.1.2 (clang basiert) | |||||
u8
Zeichenkonstanten
|
N2418 | 10 | 15 | 6.5 | 2022.2 | ||||||
| Entfernung von Funktionsdefinitionen ohne Prototyp | N2432 | 10 | 15 | 2022.2 | |||||||
[[
nodiscard
]]
mit Nachricht
|
N2448 | 11 | 10 | Ja | 6.4 | 2021.1.2 (clang based) | |||||
| Unbenannte Parameter in Funktionsdefinitionen | N2480 | 11 | 11 | Ja | 6.4 | 2021.1.2 (clang based) | |||||
| Labels vor Deklarationen und Ende von Blöcken | N2508 | 11 | 16 | Teilweise* | 6.5 | 17.0 * | |||||
| Binäre Ganzzahlkonstanten | N2549 |
4.3
*
11 |
2.9
*
9 |
19.0 (2015)* * | Ja | 6.5 | 11.0 * | ||||
| __has_c_attribute in Präprozessor-Bedingungen | N2553 | 11 | 9 | Ja | 6.5 | 2021.1.2 (clang based) | |||||
| Doppelte Attribute erlauben | N2557 | 11 | 13 | Ja | 6.5 | 2021.4 (clang-basiert | |||||
| IEEE 754 Austausch- und erweiterte Typen | N2601 |
7
(teilweise)*
14 |
6 (teilweise)* | Teilweise* | |||||||
| Zifferntrennzeichen | N2626 | 12 | 13 | 19.0 (2015)* * | Ja | 6.5 | 18.0 * | ||||
#elifdef
und
#elifndef
|
N2645 | 12 | 13 | 19.40* | 13.1.6* | 6.5 | 2021.4 | ||||
Typänderung von
u8
String-Literalen
|
N2653 | 13 | |||||||||
[[
maybe_unused
]]
für Labels
|
N2662 | 11 | 16 | 6.5 | 2022.2 | ||||||
| #warning | N2686 | Ja | Ja | Ja | 6.5 | Ja | |||||
| Bit-genaue Ganzzahltypen ( _BitInt ) | N2763 | 14 (teilweise)* | 15 | 6.5 | 2022.2 | ||||||
[[
noreturn
]]
|
N2764 | 13 | 15 | 6.5 | 2022.2 | ||||||
| Suffixe für bitgenaue Integer-Konstanten | N2775 | 14 | 15 | 2022.2 | |||||||
| __has_include in Präprozessor-Bedingungen | N2799 | 5 | Ja | 19.11* | Ja | 6.5 | 18.0 | ||||
| Bezeichnersyntax unter Verwendung des Unicode-Standard-Anhangs 31 | N2836 | 13 | 15 | 6.5 | 2022.2 | ||||||
| Entfernung von Funktionsdeklarationen ohne Prototyp | N2841 | 13 | 15 | 2022.2 | |||||||
| Leere Initialisierer | N2900 |
Teilweise*
13 |
Teilweise* | Teilweise* | Teilweise* | Teilweise* | |||||
| typeof und typeof_unqual |
N2927
N2930 |
Teilweise*
13 |
Teilweise*
16 |
19.39* | Teilweise* | Teilweise* | Teilweise* | Teilweise* | |||
| Neue Schreibweise von Schlüsselwörtern | N2934 | 13 | 16 | 6.5 | |||||||
| Vordefinierte true und false | N2935 | 13 | 15 | 2022.2 | |||||||
[[
unsequenced
]]
und
[[
reproducible
]]
|
N2956 | 15 | |||||||||
| Anforderungen für variadische Parameterliste lockern | N2975 | 13 | 16 | 6.5 | 2023.1 | ||||||
| Typrückschluss bei Objektdefinitionen | N3007 | 13 | 18 | ||||||||
| #embed | N3017 | 15 | 19 | ||||||||
| constexpr Objekte | N3018 | 13 | 19 | ||||||||
| Verbesserte Normale Aufzählungen | N3029 | 13 | 20 * | ||||||||
| Aufzählungen mit festgelegten zugrundeliegenden Typen | N3030 | 13 | 20 * | ||||||||
__VA_OPT__
|
N3033 |
8
13 |
12 | 19.39* | 6.5 | ||||||
| Speicherklassenspezifizierer für zusammengesetzte Literale | N3038 | 13 | |||||||||
| nullptr | N3042 | 13 | 16 | ||||||||
|
C23-Funktion |
Dokument(e) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
C23-Bibliotheksfunktionen
|
Dieser Abschnitt ist unvollständig
Grund: eine separate Liste für C-Standardbibliotheken |
C99-Funktionen
C99-Kernsprachfunktionen
|
Dieser Abschnitt ist unvollständig
Grund: muss C-Compiler, Verifizierung auflisten |
|
C99-Funktion
|
Dokument(e)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| Universal-character-names in Bezeichnern | 3.1 | Ja | Ja | ||||||||
| Erhöhte Übersetzungslimits | N590 | 0.9 | N/A | ||||||||
| // Kommentare | N644 | 2.7 | Ja | Ja | |||||||
| restrict Zeiger | N448 | 2.95 | Ja | teilweise * | |||||||
| Erweiterte arithmetic types |
N815
N601 N620 N638 N657 N694 N809 |
Ja | teilweise | Vielleicht | |||||||
| Flexible Array-Member | 3.0 | Ja | Ja | ||||||||
| Variable-length array (VLA) Typen | N683 | 0.9 | Ja | ||||||||
| Variably-modified (VM) Typen | N2778 | N/A | Ja | ||||||||
| Designierte Initialisierer | N494 | 3.0 | Ja | Ja | |||||||
| Nicht-konstante Initialisierer | 1.21 | N/A | |||||||||
| Idempotente cvr-Qualifizierer | N505 | 3.0 | N/A | ||||||||
| Nachgestelltes Komma in enumerator-list | 0.9 | Ja | Ja | ||||||||
| Hexadezimale Gleitkommakonstanten | N308 | 2.8 | Ja | Ja | |||||||
| Verbundliterale | N716 | 3.1 | Ja | Ja | |||||||
| Gleitkomma-Umgebung | teilweise | teilweise | |||||||||
| Erforderung der Abschneidung für Divisionen von vorzeichenbehafteten Ganzzahltypen | N617 | 0.9 | N/A | ||||||||
Implizites
return
0
;
in der
main()
Funktion
|
Ja | Ja | Ja | ||||||||
| Deklarationen und Anweisungen in gemischter Reihenfolge | N740 | 3.0 | Ja | Ja | |||||||
| init-statement in for Schleifen | Ja | Ja | Ja | ||||||||
| inline Funktionen | N741 | 4.3 | Ja | Ja | |||||||
| Vordefinierte Variable __func__ | N611 | 2.95 | Ja | Ja | |||||||
| Cvr-Qualifizierer und static in [ ] innerhalb von Funktionsdeklarationen | 3.1 | Ja | |||||||||
| Variadische Makros | N707 | 2.95 | Ja | Ja | |||||||
| _Pragma Präprozessor-Operator | N634 | 3.0 | Ja | teilweise * | |||||||
| Standard-Pragmen für Gleitkomma-Auswertung |
N631
N696 |
Nein | Nein | ||||||||
|
C99-Funktion |
Dokument(e) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Siehe auch
|
C++ Dokumentation
für
Compiler-Unterstützung
|