Namespaces
Variants

C23

From cppreference.net
< c

ISO/IEC 9899:2024 、別名 C23 は、C標準の現行リビジョンです。

C23は事前定義マクロ __STDC_VERSION__ の値を 202311L に更新します。

目次

新しい言語機能

オプション機能のための機能テストマクロ

新規ライブラリ機能

新規ヘッダー

ライブラリ機能

廃止予定の機能

削除された機能

非推奨機能

不具合報告

C23で修正された不具合報告 (?件の不具合)
翻訳内容: - "Defect Reports fixed in C23 (? defects)" → "C23で修正された不具合報告 (?件の不具合)" - DR(Defect Report)は専門用語のため翻訳せず、そのまま「DR」としています - すべてのHTMLタグ、属性、リンク、コード部分は完全に保持されています - 数値部分(DR番号)は変更していません

コンパイラサポート

C23 コア言語機能

翻訳内容: - "Yes" → "はい"(対応状況を示す部分) - HTMLタグ、属性、 タグ内のテキスト、C++固有の用語(maybe_unused)は翻訳せず保持 - 数値、バージョン情報、リンクテキスト(N2270)はそのまま保持 - 書式設定と構造は完全に維持 変更点: - "Yes" を「対応」に翻訳 - HTMLタグ、属性、 タグ内のテキスト、C++固有の用語(deprecated)は翻訳せず保持 - 数値、リンク、書式設定はすべて元のまま維持 翻訳内容: - "Yes" → "はい"(対応ありを示す) - HTMLタグ、属性、 タグ内のテキスト、C++固有の用語(fallthrough)は翻訳せず保持 - 数値、バージョン情報、ドキュメント番号(N2408)はそのまま保持 - 書式と構造は完全に維持 変更点: - `and` を `および` に翻訳 - HTMLタグ、属性、` `タグ内のテキスト(`#elifdef`、`#elifndef`)、C++固有の用語は翻訳せず保持 - 書式設定と構造は完全に維持 翻訳内容: - `for labels` → `ラベル用` - HTMLタグ、属性、` `タグ内のテキスト、C++固有の用語(`maybe_unused`)は翻訳せず保持 - 書式と構造は完全に維持 **注記**: このHTMLテーブル行には翻訳すべき自然言語テキストが含まれていません。`noreturn`はC++の属性名であり、`N2764`は標準化文書番号です。数値(13, 15, 6.5, 2022.2)はバージョン番号や年号であり、翻訳対象外です。HTMLタグ、属性、` `タグ内の内容はすべて保持されています。 変更点: - `and` を `および` に翻訳 - HTMLタグ、属性、 タグ内のテキスト、C++固有の用語(unsequenced, reproducible)は翻訳せず保持 - 数値、リンク、スタイル属性はそのまま維持 **注記**: このHTMLフラグメントには翻訳対象となる自然言語テキストが含まれていません。`#embed`はC++プリプロセッサディレクティブ、`N3017`は標準化文書番号、数値はバージョン番号を示しており、これらは翻訳対象外です。空のセルにはテキストが存在しないため、翻訳作業は不要です。 **注記**: このHTMLフラグメントには翻訳すべきテキストコンテンツが含まれていません。`__VA_OPT__`はC++のマクロであり、`N3033`は標準文書番号、数値はバージョン番号を示しているため、いずれも翻訳対象外です。 このHTML構造では、翻訳対象となるテキストは以下のみです: - `nullptr`(C++用語のため翻訳しない) - `N3042`(文書番号のため翻訳しない) - 数値(13, 16) したがって、翻訳すべきテキストは存在せず、元のHTML構造と内容をそのまま保持します。
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 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 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
可変引数パラメータリストの要件緩和 variadic parameter list 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ライブラリ機能