C compiler support
From cppreference.net
<
c
|
|
このページはベストエフォートで維持されており、最新のコンパイラリリースよりも遅れている可能性があります。もし古い情報を見つけた場合は、更新にご協力ください! |
(注:指定されたテキストブロック内に翻訳対象となる可読テキストが存在しないため、HTML構造はそのまま保持されています)
目次 |
C23 機能
C23/2x標準草案の進展に伴い、このリストは変更される可能性があることに注意してください。
C23 コア言語機能
|
このセクションは不完全です
理由: Apple ClangおよびC2xをサポートする他のコンパイラのステータス |
|
C23機能
|
提案文書
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| static_assert メッセージなし | N2265 | 9 | 9 | 対応 | 対応 | 6.5 | 2021.1.2 (clang based) | ||||
[[
nodiscard
]]
|
N2267 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang based) | |||||
[[
maybe_unused
]]
|
N2270 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang based) | |||||
[[
deprecated
]]
|
N2334 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang based) | |||||
| 属性 |
N2335
N2554 |
10 | 9 | 対応 | 6.4 | 2021.1.2 (clang based) | |||||
| IEEE 754 10進浮動小数点型 | N2341 |
4.2
(一部)*
12 |
13.0 (一部)* | ||||||||
[[
fallthrough
]]
|
N2408 | 10 | 9 | はい | 6.4 | 2021.1.2 (clang based) | |||||
u8
文字定数
|
N2418 | 10 | 15 | 6.5 | 2022.2 | ||||||
| プロトタイプ宣言のない 関数定義 の削除 | N2432 | 10 | 15 | 2022.2 | |||||||
[[
nodiscard
]]
メッセージ付き
|
N2448 | 11 | 10 | 対応 | 6.4 | 2021.1.2 (clang based) | |||||
| 関数定義における無名パラメータ | N2480 | 11 | 11 | 対応 | 6.4 | 2021.1.2 (clang based) | |||||
| ラベル 宣言前およびブロック終端での使用 | 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 based) | |||||
| 重複属性の許可 | N2557 | 11 | 13 | 対応 | 6.5 | 2021.4 (clang-based | |||||
| 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技術報告書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 | 対応 | 部分的 * | |||||||
| 拡張 arithmetic types |
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 | 対応 | 対応 | |||||||
| 浮動小数点環境 | partial | partial | |||||||||
| 符号付き整数型の除算における切り捨ての要求 | N617 | 0.9 | N/A | ||||||||
main()関数における
return
0
;
の暗黙的な返却
main()
function
|
はい | はい | はい | ||||||||
| 宣言と文の混合順序 | N740 | 3.0 | はい | はい | |||||||
| init-statement in for ループ | はい | はい | はい | ||||||||
| 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++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
関連項目
|
C++ ドキュメント
の
コンパイラサポート
|