Cコンパイラのサポート
From cppreference.com
< c
|
|
このページはベストエフォートで維持されており、最新のコンパイラリリースから遅れている可能性があります。もし情報が古いことにお気づきの場合は、更新にご協力をお願いします! |
目次 |
[編集] C23の機能
このリストは、C23/2x標準のドラフトが進化するにつれて変更される可能性があることに注意してください。
[編集] C23コア言語機能
| このセクションは未完成です 理由: Apple ClangおよびC2xをサポートする他のコンパイラの状況 |
| C23機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| メッセージなしの static_assert | N2265 | 9 | 9 | はい | はい | 6.5 | 2021.1.2 (clang ベース) | ||||
[[nodiscard]]
|
N2267 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
[[maybe_unused]]
|
N2270 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
[[deprecated]]
|
N2334 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
| 属性 | N2335 N2554 |
10 | 9 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
| IEEE 754 10進浮動小数点型 | N2341 | 4.2 (部分的)* 12 |
13.0 (部分的)* | ||||||||
[[fallthrough]]
|
N2408 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
u8 文字定数
|
N2418 | 10 | 15 | 6.5 | 2022.2 | ||||||
| プロトタイプなしの関数定義の削除 | N2432 | 10 | 15 | 2022.2 | |||||||
メッセージ付き [[nodiscard]] |
N2448 | 11 | 10 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
| 関数定義における無名パラメータ | N2480 | 11 | 11 | はい | 6.4 | 2021.1.2 (clang ベース) | |||||
| 宣言とブロック末尾の前にあるラベル | N2508 | 11 | 16 | 部分的* | 6.5 | 17.0* | |||||
| 2進整数定数 | N2549 | 4.3* 11 |
2.9* 9 |
19.0 (2015)** | はい | 6.5 | 11.0* | ||||
| プリプロセッサ条件式における __has_c_attribute | N2553 | 11 | 9 | はい | 6.5 | 2021.1.2 (clang ベース) | |||||
| 重複属性の許可 | N2557 | 11 | 13 | はい | 6.5 | 2021.4 (clang ベース | |||||
| IEEE 754 交換および拡張型 | N2601 | 7 (部分的)* 14 |
6 (部分的)* | 部分的* | |||||||
| 桁区切り文字 | N2626 | 12 | 13 | 19.0 (2015)** | はい | 6.5 | 18.0* | ||||
#elifdef と #elifndef
|
N2645 | 12 | 13 | 19.40* | 13.1.6* | 6.5 | 2021.4 | ||||
u8 文字列リテラルの型変更 |
N2653 | 13 | |||||||||
ラベルに対する [[maybe_unused]] |
N2662 | 11 | 16 | 6.5 | 2022.2 | ||||||
| #warning | N2686 | はい | はい | はい | 6.5 | はい | |||||
| ビット精度整数型 (_BitInt) | N2763 | 14 (部分的)* | 15 | 6.5 | 2022.2 | ||||||
[[noreturn]]
|
N2764 | 13 | 15 | 6.5 | 2022.2 | ||||||
| ビット精度整数定数のサフィックス | N2775 | 14 | 15 | 2022.2 | |||||||
| プリプロセッサ条件式における __has_include | N2799 | 5 | はい | 19.11* | はい | 6.5 | 18.0 | ||||
| Unicode Standard Annex 31 を使用した識別子構文 | N2836 | 13 | 15 | 6.5 | 2022.2 | ||||||
| プロトタイプなしの関数宣言の削除 | N2841 | 13 | 15 | 2022.2 | |||||||
| 空の初期化子 | N2900 | 部分的* 13 |
部分的* | 部分的* | 部分的* | 部分的* | |||||
| typeof と typeof_unqual | N2927 N2930 |
部分的* 13 |
部分的* 16 |
19.39* | 部分的* | 部分的* | 部分的* | 部分的* | |||
| キーワードの新しいスペル | N2934 | 13 | 16 | 6.5 | |||||||
| 事前定義された true と false | N2935 | 13 | 15 | 2022.2 | |||||||
[[unsequenced]] と [[reproducible]] |
N2956 | 15 | |||||||||
| 可変長引数リストの要件緩和 | N2975 | 13 | 16 | 6.5 | 2023.1 | ||||||
| オブジェクト定義における型推論 | N3007 | 13 | 18 | ||||||||
| #embed | N3017 | 15 | 19 | ||||||||
| constexpr オブジェクト | N3018 | 13 | 19 | ||||||||
| 改良された通常の列挙型 | N3029 | 13 | 20* | ||||||||
| 基底型が固定された列挙型 | N3030 | 13 | 20* | ||||||||
__VA_OPT__
|
N3033 | 8 13 |
12 | 19.39* | 6.5 | ||||||
| 複合リテラルのための記憶クラス指定子 | N3038 | 13 | |||||||||
| nullptr | N3042 | 13 | 16 | ||||||||
| C23機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
[編集] C23ライブラリ機能
| このセクションは未完成です 理由: C標準ライブラリのための異なるリスト |
[編集] C99の機能
[編集] C99のコア言語機能
| このセクションは未完成です 理由:Cコンパイラのリストアップ、検証が必要 |
| C99の機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| 識別子における汎用文字名 | 3.1 | はい | はい | ||||||||
| 増加した翻訳制限 | N590 | 0.9 | N/A | ||||||||
| // コメント | N644 | 2.7 | はい | はい | |||||||
| restrictポインタ | N448 | 2.95 | はい | 部分的* | |||||||
| 拡張された算術型 | N815 N601 N620 N638 N657 N694 N809 |
はい | 部分的 | 多分 | |||||||
| フレキシブル配列メンバ | 3.0 | はい | はい | ||||||||
| 可変長配列 (VLA) 型 | N683 | 0.9 | はい | ||||||||
| 可変修飾 (VM) 型 | N2778 | N/A | はい | ||||||||
| 指示付き初期化子 | N494 | 3.0 | はい | はい | |||||||
| 非定数初期化子 | 1.21 | N/A | |||||||||
| 冪等なcvr修飾子 | N505 | 3.0 | N/A | ||||||||
| enumerator-listの末尾カンマ | 0.9 | はい | はい | ||||||||
| 16進浮動小数点定数 | N308 | 2.8 | はい | はい | |||||||
| 複合リテラル | N716 | 3.1 | はい | はい | |||||||
| 浮動小数点環境 | 部分的 | 部分的 | |||||||||
| 符号付き整数型の除算における切り捨ての要求 | N617 | 0.9 | N/A | ||||||||
main()関数における暗黙的なreturn 0; |
はい | はい | はい | ||||||||
| 宣言と文の混在 | N740 | 3.0 | はい | はい | |||||||
| forループにおけるinit-statement | はい | はい | はい | ||||||||
| inline関数 | N741 | 4.3 | はい | はい | |||||||
| 定義済み変数__func__ | N611 | 2.95 | はい | はい | |||||||
| 関数宣言内の[]におけるcvr修飾子とstatic | 3.1 | はい | |||||||||
| 可変引数マクロ | N707 | 2.95 | はい | はい | |||||||
| _Pragmaプリプロセッサ演算子 | N634 | 3.0 | はい | 部分的* | |||||||
| 浮動小数点評価のための標準プラグマ | N631 N696 |
いいえ | いいえ | ||||||||
| C99の機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
[編集] 関連項目
| コンパイラサポートについてのC++ドキュメント
|