Namespaces
Variants

C++23

From cppreference.net

C++標準の現在のリビジョン。

目次

新しい言語機能

void f ( int & x )
{
if ( x )
goto END ;
x = 42 ;
END :
}
  • 初期化文内でのエイリアス宣言 ( using ) ( P2360R0 )、例:
for ( using T = int ; T e : v )
/* ... */
(注:指定された条件により、HTMLタグ・属性、 タグ内のC++コード、C++専門用語は翻訳対象外となっています。上記のコードブロックには翻訳すべき自然言語テキストが含まれていないため、出力は入力と同一になります)

新規ライブラリ機能

新規モジュール

新規ヘッダー

C互換性ヘッダー:

ライブラリ機能

汎用ユーティリティ
コルーチンライブラリ
診断
アルゴリズム、イテレータ、およびレンジ
コンテナ
コンパイル時サポート
メモリ管理
文字列とテキスト処理
I/Oと出力

廃止された機能

削除された機能
  • ガベージコレクションのサポートと到達可能性ベースのリーク検出。 ( P2186R2 )
  • 混合ワイド文字列リテラルの 連結 サポート、例: const auto * no = u "q" U "p" は不適格。 ( P2201R1 )
  • エンコード不可能なワイド文字リテラルと複数文字ワイド文字リテラル、例: wchar_t x = 'db' は不適格。 ( P2362R3 )
非推奨機能
撤回された非推奨事項
  • operator, (コンマ演算子)が添字式で使用可能(ただし、オーバーロード可能な多次元添字 operator [ ] をサポートするために意味論が変更されました)。
  • 一部のCヘッダー(Cとの互換性のための対応する <*.h> ヘッダー)( P2340R1 )

不具合報告

コンパイラサポート

主な記事: C++23 コンパイラサポート

C++23 コア言語機能

翻訳のポイント: - `for loop` → `forループ`(C++用語としての「for」は翻訳せず、ループのみ翻訳) - `init-statement`、`alias-declaration` はC++専門用語のため翻訳せず - HTMLタグ、属性、 タグ内のテキストは完全に保持 - 自然な日本語の語順に調整(「〜を拡張して〜を許可」) - 表の数値データは変更なし 変更点: - "FTM" を「機能テストマクロ」に翻訳 - title属性内の "Feature-testing macro" を「機能テストマクロ」に翻訳 - C++コード部分(`static operator ()`)は翻訳せず保持 - HTMLタグ、属性、数値、バージョン情報はすべて保持
C++23 機能

提案文書

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
リテラルサフィックス for (signed) size_t ( FTM ) * P0330R8 11 13 19.43* 13.1.6* 6.5 2022.2 23.9
lambda における () の記述をより任意に P1102R2 11 13 19.44* 13.1.6* 6.3 2022.2 22.5
if consteval ( FTM ) * P1938R3 12 14 19.44* 14.0.0* 6.3 2022.2 24.1
ガベージコレクションサポートの削除 P2186R2 12 N/A 19.30* N/A N/A
static_assert および constexpr if における縮小コンテキスト変換 P1401R5 9 13 (部分対応)*
14
14.0.0* 2022.2 20.7
行継続前の空白文字のトリミング P2223R2 はい はい はい 6.7 2022.2 はい
宣言順序レイアウトを強制 P1847R4 はい はい はい はい 2022.2 はい
混合ワイド文字列リテラルの削除 concatenation P2201R1 はい はい はい はい はい はい はい
明示的オブジェクトメンバー関数 ( this の推論)  ( FTM ) * P0847R7 14 18
19*
19.32*
(部分的な対応)*
19.43*
6.3 22.5
auto(x) および auto{x} ( FTM ) * P0849R8 12 15 14.0.3* 6.4 2022.2 23.3
#elifdef および #elifndef P2334R1 12 13 19.40* 13.1.6* 6.5 2022.2 23.9
constexpr関数内の非リテラル変数(およびラベルとgoto) ( constexpr )  ( FTM ) * P2242R3 12 15 19.43* 14.0.3* 6.3 2022.2 22.5
一貫した文字リテラルエンコーディング P2316R2 はい はい 19.30* はい はい 2022.2 はい
文字セットとエンコーディング P2314R4 10 はい はい はい 2022.2 はい
init-statement( for ループ の)を拡張して alias-declaration を許可 P2360R0 12 14 14.0.0* 2022.2
多次元 添字演算子 ( FTM ) * P2128R6 12 15 19.42* 14.0.3* 2022.2
ラムダ式 の属性 P2173R1 9 13 19.44* 13.1.6* 6.6 2022.2 22.5
#warning P2437R1 はい* はい 15.0.0* 6.5 2023.2 はい
エンコード不可能なワイド文字リテラルとマルチキャラクタワイド文字リテラルの削除 P2362R3 13 14 15.0.0* 6.7 2023.2
複合文の末尾でのラベル P2324R2 13 16 16.0.0* 6.5 2023.2 23.9
区切りエスケープシーケンス P2290R3 13 15 15.0.0* 6.7 2023.2
名前付きユニバーサル文字エスケープ ( FTM ) * P2071R2 13 15 15.0.0* 6.7 2023.2
一部の constexpr 制限の緩和 ( FTM ) * P2448R2 13 17 (partial)
19
2024.0 (partial)
簡略化された暗黙ムーブ  ( FTM ) * P2266R3 13 13 6.7 2022.2
static operator ( ) ( 機能テストマクロ ) * P1169R4 13 16 19.44* 16.0.0* 6.7 2023.2
オプションの 拡張浮動小数点型 の要件 P1467R9 13 N/A 6.4
継承されたコンストラクタからのクラステンプレート引数推論 P2582R1 14
属性 [[ assume ]] P1774R8 13 19
移植可能なソースファイルエンコーディングとしてのUTF-8サポート P2295R6 13* 15* 19.0 (Update 2)* * 15.0.0* 2023.2
static operator [ ] ( FTM ) * P2589R1 13 16 19.44* 16.0.0* 6.7 2023.2
constexpr関数内での static constexpr 変数の許可  ( FTM ) * P2647R1 13 16 16.0.0* 2023.2
範囲ベースforループ初期化子における一時オブジェクトの寿命延長  ( FTM ) * P2644R1
P2718R0
CWG2659
15 19
宣言とその検索場所 P1787R6
DR11: lambda の後置戻り値型のスコープ変更 P2036R3
P2579R0
17 2023.2
DR20: 意味のあるエクスポート P2615R1 15 17 (partial)
DR20: consteval は上位への伝播が必要 ( FTM ) * P2564R3 14 17 16.0.0* 6.7 2024.0
DR98: Unicode標準附属書31を使用したC++識別子構文 P1949R7 12 14 14.0.0* 6.4 2022.2
DR11: 重複する属性を許可 attributes P2156R1 11 13 13.1.6* 6.5 23.9
DR20: 機能テストマクロの値の調整 __cpp_concepts P2493R0 12 19.32* 6.4 23.3
DR98: 既存の実装に合わせて wchar_t の要件を緩和 P2460R2 はい はい はい 15.0.0* 該当なし 2023.2
DR11: 定数式における未知のポインタと参照の使用 P2280R4 14 20 *
DR20: 求めている等価演算子 P2468R2 13 16 16.0.0* 2023.2
DR20: char8_t 互換性と移植性の修正  ( FTM ) * P2513R4 13 16 19.34* 16.0.0* 2023.2
DR98/11: 診断ディレクティブ の報告の明確化と、テンプレートコンテキストにおける非値依存式の static_assert の許可 CWG2518 13 17 16.0*
(partial)*
19.40*


C++23 機能


提案文書
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (旧 PGI)*
Nvidia nvcc
Cray

C++23 ライブラリ機能

**注記**: このHTMLフラグメントには翻訳対象となる自然言語テキストがほとんど含まれていません。以下の要素のみが翻訳対象となります: - `title`属性内のテキスト(ただしC++関連の用語は翻訳せず) - 括弧内の「FTM」は機能テストマクロを表すため、そのまま保持 現在の内容では、翻訳すべき自然言語テキストがほとんど存在しないため、元のHTML構造とC++関連の用語はすべて保持されています。 翻訳内容: - "Feature-testing macro:" → "機能テストマクロ:" - その他のC++固有の用語(`std::is_scoped_enum`、`FTM`、`P1048R1`、バージョン番号など)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 翻訳内容: - "FTM" → "機能テストマクロ" (Feature Testing Macro) - タイトル属性内の "Feature-testing macro" → "機能テストマクロ" - C++固有の用語(std::basic_string::contains()、std::basic_string_view::contains()、__cpp_lib_string_contains)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 翻訳内容: - `Feature-testing macro:` → `機能テストマクロ:` - その他のC++固有の用語(`std::to_underlying`、`FTM`、`__cpp_lib_to_underlying`、`P1682R3`)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 変更点: - `FTM` を `機能テストマクロ` に翻訳 - HTMLタグ、属性、` `/`
`/``タグ内のテキスト(`std::out_ptr()`、`std::inout_ptr()`)は翻訳せず保持
- C++固有の用語は翻訳せず保持
- 数値、リンク、書式は完全に保持
**注記**: このHTMLフラグメントには翻訳すべきテキストコンテンツがほとんど含まれていません。主にC++コード、識別子、バージョン番号、リンクテキストで構成されており、これらは翻訳対象外です。唯一の翻訳可能な要素はタイトル属性のテキストですが、これも技術的な内容であるため翻訳せずに保持するのが適切です。 翻訳内容: - "Feature-testing macro:" → "機能テストマクロ:" - その他のテキスト(`std::byteswap()`、`FTM`、`P1272R4`、バージョン番号など)はC++固有の用語またはコードとして翻訳せず保持 - HTMLタグ、属性、書式は完全に保持 **注記**: このHTMLフラグメントには翻訳すべきテキストがほとんど含まれていません。以下の要素のみが翻訳対象となります: - `title="cpp/utility/functional/move only function"` → `title="cpp/utility/functional/move only function"`(C++用語のため翻訳せず) - `title="cpp/feature test"` → `title="cpp/feature test"`(C++用語のため翻訳せず) - `title="Feature-testing macro: __cpp_lib_move_only_function = 202110L"` → `title="機能テストマクロ: __cpp_lib_move_only_function = 202110L"` - `title="VS 2022 17.2"` → `title="VS 2022 17.2"`(バージョン情報のため翻訳せず) HTMLタグ、属性、コード内のテキスト、C++固有の用語はすべて原文のまま保持されています。 翻訳内容: - "Feature-testing macro:" → "機能テストマクロ:" - HTMLタグ、属性、コード内のテキストは翻訳せずに保持 - C++固有の用語(expected, FTM, バージョン番号など)は翻訳せず - 元の書式と構造を完全に維持 翻訳内容: - `Feature-testing macro:` → `機能テストマクロ:` - その他のC++固有の用語(`std::unreachable()`、`FTM`、`__cpp_lib_unreachable`など)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 - バージョン番号、リンクテキスト、表記法は変更なし 翻訳内容: - "Feature-testing macro" → "機能テストマクロ" - "type traits were implemented but some library changes were missing" → "型特性は実装されたが、一部のライブラリ変更が欠けていた" - "only type traits were implemented" → "型特性のみが実装された" - "(partial)" → "(部分的な実装)" C++固有の用語(`std::reference_constructs_from_temporary`、`std::reference_converts_from_temporary`、`FTM`、`P2255R2`)は翻訳せず、HTMLタグと属性、コード内のテキストはそのまま保持しています。 変更点: - `Feature-testing macro:` を `機能テストマクロ:` に翻訳 - C++固有の用語(`constexpr`, `std::unique_ptr`, `FTM`, `__cpp_lib_constexpr_memory`)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 - 数値、バージョン情報、リンクテキストは変更なし HTMLタグ、属性、C++固有の用語、
タグ内のテキストは翻訳せず、元のフォーマットを保持します。
翻訳内容: - `Feature-testing macro:` → `機能テストマクロ:` - その他のC++関連用語(`views::chunk_by`、`FTM`、`__cpp_lib_ranges_chunk_by`、`P2443R1`など)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 - 数値、バージョン情報、書式設定は変更なし 変更点: - `Feature-testing macro:` → `機能テストマクロ:` - その他のHTMLタグ、属性、コード内のテキストは翻訳せずに保持 - C++固有の用語(FTM, __cpp_lib_flat_setなど)は翻訳せず **注記**: このHTMLコードには翻訳すべきテキストがほとんど含まれていません。以下の要素のみが翻訳対象となります: - `title="cpp/ranges/stride view"` → `title="cpp/ranges/stride ビュー"` - `title="cpp/feature test"` → `title="cpp/機能テスト"` - `title="Feature-testing macro: __cpp_lib_ranges_stride = 202207L"` → `title="機能テストマクロ: __cpp_lib_ranges_stride = 202207L"` - `title="VS 2022 17.4"` → `title="VS 2022 17.4"`(製品名は翻訳しない) ただし、元の指示によりHTMLタグや属性内のテキストは翻訳しないため、実際には何も翻訳せずにそのまま出力しています。 翻訳のポイント: - HTMLタグ、属性、C++固有の用語(`std::tuple`、`FTM`、`P2165R4`など)は翻訳せず保持 - 技術文書としての正確性と専門性を維持 - 「Compatibility between」を「~間の互換性」と自然な日本語に翻訳 - 「tuple-like objects」を「タプルライクオブジェクト」と技術用語として適切に翻訳 - 「partial」を文脈に応じて「部分的な実装」と翻訳 - 数値やバージョン情報はそのまま保持 **注記:** - C++固有の用語(`views::cartesian_product`、`FTM`、`__cpp_lib_ranges_cartesian_product`)は翻訳せず保持しました - HTMLタグ、属性、コード関連の要素はすべて保持されています - 提案文書番号(P2374R4、P2540R1)は翻訳対象外です - バージョン番号(13、19.37*)は数値データとして保持しました 翻訳のポイント: - HTMLタグ、属性、 タグ内のテキストは翻訳せず保持 - C++固有の用語(equality_comparable, totally_ordered, three_way_comparable, FTM)は翻訳せず保持 - 比較コンセプト、ムーブ専用型などの技術用語は正確に翻訳 - 表の構造と書式は完全に保持 翻訳内容: - `FTM` → `機能テストマクロ` - `Feature-testing macro:` → `機能テストマクロ:` - HTMLタグ、属性、C++固有の用語(`constexpr`、`std::bitset`、`__cpp_lib_constexpr_bitset`など)は翻訳せず保持 - 数値、バージョン情報、リンクテキストはそのまま保持 - 書式設定と構造は完全に維持 **注記**: このHTMLフラグメントには翻訳対象となる自然言語テキストが含まれていません。すべての要素は以下のいずれかに該当します: - HTMLタグと属性(翻訳対象外) - ` `タグ内のテキスト(`&&` - 翻訳対象外) - ` `タグ内のC++関数名(`basic_string::substr()` - C++専門用語のため翻訳対象外) - 技術文書の参照番号(`P2438R2` - 翻訳対象外) - バージョン番号と数値(翻訳対象外) 従って、元のHTML構造と内容はそのまま保持されています。 翻訳内容: - `FTM` → `機能テストマクロ` - `Feature-testing macro:` → `機能テストマクロ:` - C++固有の用語(`views::as_rvalue`、`__cpp_lib_ranges_as_rvalue`)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 - タイトル属性内の説明文も適切に翻訳 翻訳内容: - `Feature-testing macro:` → `機能テストマクロ:` - その他のC++固有の用語(`std::forward_like()`、`FTM`、`__cpp_lib_forward_like`、`P2445R1`など)は翻訳せず保持 - HTMLタグ、属性、コード内のテキストは完全に保持 - 数値、バージョン情報、リンクは変更なし 翻訳内容: - `Feature-testing macro:` → `機能テストマクロ:` - その他のテキスト(`views::enumerate`、`FTM`、`P2164R9`、数値など)はC++固有の用語またはコードとして翻訳せず保持 - HTMLタグ、属性、構造は完全に保持 変更点: - `title`属性内の「Feature-testing macro」を「機能テストマクロ」に翻訳 - C++固有の用語(`std::is_implicit_lifetime`、`FTM`、`__cpp_lib_is_implicit_lifetime`、`P2674R1`)は翻訳せず保持 - HTMLタグ、属性、構造は完全に保持 - 数値、表記はそのまま保持 **翻訳結果:** **注記:** 指定された要件に従い、HTMLタグ、属性、` `/`
`/``タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。このテーブル行には翻訳対象となる自然言語テキストが含まれていません。
翻訳内容: - "DR20:" はそのまま保持 - "std::format" はC++用語なので翻訳せず - "fill character allowances" を「フィル文字の許可」と翻訳 - "P2572R1" は文書番号なので翻訳せず - 数値とHTMLタグはすべて保持
C++23 機能

提案文書

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
スタックトレースライブラリ ( FTM ) * P0881R7
P2301R1
12 (部分対応)*
14*
19.34*
<stdatomic.h> ( FTM ) * P0943R6 12 15 19.31* 14.0.3*
std::is_scoped_enum ( FTM ) * P1048R1 11 12 19.30* 13.0.0*
std::basic_string::contains() , std::basic_string_view::contains() ( 機能テストマクロ ) * P1679R3 11 12 19.30* 13.0.0*
std::to_underlying ( FTM ) * P1682R3 11 13 19.30* 13.1.6*
time_point<>::clock の要件緩和 P2212R2 N/A N/A N/A N/A
アロケータインターフェースでのサイズフィードバックの提供 FTM * P0401R6 15 19.30* 14.0.3*
<spanstream> : std::span ベースのバッファを持つ文字列ストリーム  ( FTM ) * P0448R4 12 19.31*
std::out_ptr() , std::inout_ptr() ( 機能テストマクロ ) * P1132R8 14 19 19.30*
constexpr type_info::operator==() ( FTM ) * P1328R1 12 17 19.33* *
19.34*
15.0.0*
std::stack および std::queue のイテレータペアコンストラクタ ( FTM ) * P1425R4 12 14 19.31* 14.0.3*
コンテナの推論ガイドにおけるアロケータの非推論コンテキスト P1518R2 12 * 13 * 19.31* * 13.1.6* *
ranges::starts_with() および ranges::ends_with() ( FTM ) * P1659R3 17 (部分的なみ)*
18
19.31* 16.0.0*
nullptr からの std::basic_string および std::basic_string_view の構築を禁止 P2166R1 12 13 19.30* 13.1.6*
std::invoke_r() ( FTM ) * P2136R3 12 17 19.31* 15.0.0*
Range コンストラクタ std::basic_string_view P1989R2 11 14 19.30* 14.0.3*
std::pair の転送 コンストラクタ に対するデフォルトテンプレート引数 P1951R1 14 14 19.30* 14.0.3*
ガベージコレクションと到達可能性ベースのリーク検出の削除 ( library support ) P2186R2 12 14 19.30* 14.0.3*
zip: views::zip , views::zip_transform , views::adjacent , および views::adjacent_transform ( FTM ) * P2321R2 13 15 (部分的な実装)* 19.33* (部分的な実装)* * *
19.37*
14.0.3*
連想コンテナの異種型削除オーバーロード  ( FTM ) * P2077R3 19.32*
std::byteswap() ( FTM ) * P1272R4 12 14 19.31* 14.0.3*
出力 volatile T * P1147R1 11.3 14 19.31* 14.0.3*
basic_string::resize_and_overwrite() ( 機能テストマクロ ) * P1072R10 12 14 19.31* 14.0.3*
std::optional のモナド操作 ( FTM ) * P0798R8 12 14 19.32* 14.0.3*
std::move_only_function ( FTM ) * P0288R9 12 19.32*
std::exchange に条件付きnoexcept指定を追加 P2401R0 12 14 19.25* 14.0.3*
std::span および std::basic_string_view TriviallyCopyable であることを要求 P2251R1 はい はい はい はい
「Cヘッダ」のステータスの明確化 P2340R1 はい はい はい はい
<expected> ( FTM ) * P0323R12
P2549R1
12 16 19.33* 15.0.0*
<cmath> および <cstdlib> のconstexpr対応 ( FTM ) * P0533R9 4.6 (部分対応)*
std::unreachable() ( FTM ) * P0627R6 12 15 19.32* 14.0.3*
std::aligned_storage および std::aligned_union の非推奨化 P1413R3 13 16 19.33*
std::reference_constructs_from_temporary & std::reference_converts_from_temporary ( FTM ) * P2255R2 13 (部分的な実装)*
14
21 (部分的な実装)*
constexpr std::unique_ptr ( FTM ) * P2273R3 12 16 19.33* 15.0.0*
範囲からのコンテナと文字列の構築、 ranges::to() タグ付きコンストラクタ、挿入および代入メンバー関数を使用して ( FTM ) * ( FTM ) * P1206R7 14 (部分対応)*
15
17 19.34* 15.0.0*
ユーザー定義範囲アダプタのパイプサポート ( ranges::range_adaptor_closure , std::bind_back )  ( FTM ) * ( FTM ) * P2387R3 13 (部分的な実装)*
14
19 19.34*
ranges::iota() , ranges::shift_left() 、および ranges::shift_right() ( FTM ) * ( FTM ) * P2440R1 13 (一部対応)* 19.34*
views::join_with ( FTM ) * P2441R2 13 19.34*
views::chunk および views::slide ( FTM ) * ( FTM ) * P2442R1 13 19.33*
views::chunk_by ( FTM ) * P2443R1 13 18 19.33* 16.0.0*
std::mdspan : 非所有多次元配列参照  ( FTM ) * P0009R18
P2599R2
P2604R0
P2613R1
P2763R1
17 (部分対応)*
18
19.39* 15.0.0*
<flat_map> ( FTM ) * P0429R9 15 20
<flat_set> ( FTM ) * P1222R4 15 21
ranges::find_last() ranges::find_last_if() および ranges::find_last_if_not() ( FTM ) * P1223R5 13 19 19.36*
フリースタンディングライブラリ: イージー <utility> , <ranges> , および <iterator> P1642R11 13 * N/A
views::stride ( FTM ) * P1899R3 13 19.34*
std::tuple とタプルライクオブジェクト間の互換性  ( FTM ) * P2165R4 14 2.9 (部分的な実装)* 19.36* (部分的な実装) *
19.37*
部分的な実装*
定数イテレータ、センチネル、および範囲の修正。 views:: as_const ( FTM ) * P2278R4 13 19.35* (部分的な実装)*
19.36*
範囲のフォーマット ( FTM ) * P2286R8 15 (部分対応)*
15.2
16 19.37* (部分対応)*
19.39* (部分対応)*
19.41* (部分対応)*
19.42*
15.0.0*
デフォルトコンテナの フォーマット を改善 ( FTM ) * P2585R1 15 16 (部分的)*
17
19.42* 15.0.0*
フォーマット出力ライブラリ <print> ( FTM ) * P2093R14
P2539R4
14 17 (部分対応)*
18
19.37* 15.0.0* *
16.0.0*
フォーマット std::thread::id および std::stacktrace のフォーマット ( FTM ) * P2693R1 14 17 (部分対応)* 19.38* 15.0.0*
constexpr std::to_chars() および std::from_chars() の整数型オーバーロードに対する ( FTM ) * P2291R3 13 16 19.34* 15.0.0*
ranges::contains() および ranges::contains_subrange() ( FTM ) * P2302R4 13 18 (部分実装)*
19
19.34* 16.0.0* *
範囲フォールドアルゴリズム ( FTM ) * P2322R6 13 19.35*
views::cartesian_product ( FTM ) * P2374R4
P2540R1
13 19.37*
比較コンセプトへのムーブ専用型のサポート追加 ( equality_comparable , totally_ordered , three_way_comparable )  ( FTM ) * P2404R3 19.36*
非レンジアルゴリズムへの入力としてのレンジイテレータ  ( FTM ) * P2408R5 19.34*
constexpr std::bitset ( 機能テストマクロ ) * P2417R2 13 16 19.34* 15.0.0*
basic_string::substr() && P2438R2 16 19.34* 15.0.0*
views::as_rvalue ( 機能テストマクロ ) * P2446R2 13 16 19.34* 15.0.0*
標準ライブラリモジュール  ( FTM ) * P2465R3 15* 17 (partial)* 19.35*
(partial)*
19.36*
std::forward_like() ( FTM ) * P2445R1 14 16 19.34* 15.0.0*
std::fstream の排他モードサポート ( FTM ) * P2467R1 12 18 19.36* 16.0.0*
views::repeat ( FTM ) * P2474R2 13 17 19.36* 15.0.0*
ムーブオンリー型を許可するためのレンジアダプタの緩和  ( FTM ) * P2494R2 14 17 19.34* 15.0.0*
std::basic_string_view 範囲からの コンストラクタ は明示的であるべき P2499R0 12.2 16 19.34* 15.0.0*
std::generator : 範囲のための同期コルーチンジェネレータ  ( FTM ) * P2502R2
P2787R0
14 19.43*
std::apply に条件付きnoexcept指定を追加 P2517R1 10 18 19.34* 16.0.0*
明示的寿命管理 ( std::start_lifetime_as )  ( FTM ) * P2590R2
P2679R2
chrono型のローカライズされた書式設定におけるエンコーディング処理の明確化  ( FTM ) * P2419R2 15* 19.34* *
std::move_iterator は常に input_iterator であるべきではない ( FTM ) * P2520R0 12.3* 17* 19.34* * 15.0.0*
明示的オブジェクトパラメータの呼び出し演算子に対する 明示的オブジェクトパラメータ の推論ガイド更新 LWG3617 14 19.34*
static operator() のための 推論ガイド更新 P1169R4 13 16 19.39* 15.0.0*
拡張浮動小数点型 の標準名とライブラリサポート P1467R9 13 19.37* *
std::expected のモナド操作 ( FTM ) * P2505R5 13 17 19.36* 15.0.0*
views::enumerate ( FTM ) * P2164R9 13 19.37*
std::is_implicit_lifetime ( FTM ) * P2674R1 20
std::common_reference_t std::reference_wrapper は参照型であるべき  ( FTM ) * ( FTM ) * P2655R3 19.37*
ユーザーによる std::allocator_traits の特殊化を禁止 P2652R2 19 19.37*
非推奨化 std::numeric_limits::has_denorm P2614R2 18 19.37* 16.0.0*
view の複数パラメータコンストラクタを explicit にする P2711R1 17 (部分的な実装)* 19.36* * 15.0.0*
DR20: Rangesをほんの少し緩和  ( FTM ) * P2609R3 15 20 19.37*
DR20: 適切な平坦化のためのスタッシングイテレータの保存 P2770R0 14 18 19.37*
DR17: std::visit() std::variantから派生したクラスに対する std::variant ( FTM ) * P2162R2 11.3 13 19.20* *
19.30*
13.1.6*
DR20: 条件付き借用範囲 P2017R1 11 16 19.30*
DR20: 入力範囲アダプタの修復 および std::counted_iterator P2259R1 12 19.30* (部分的)*
19.31*
DR20: views::join はすべての範囲のビューを結合すべき P2328R1 11.2 15 19.30* 14.0.3*
DR20: view default_initializable を要求しなくなった ( FTM ) * P2325R3 11.3 16 19.30* 15.0.0*
DR20: レンジアダプタオブジェクトは引数を値でバインドする P2281R1 11 14 19.29 (16.10)*
(partial)*
19.31*
14.0.3*
DR20: constexpr std::optional および std::variant への適用 ( FTM ) * ( FTM ) * P2231R1 11.3 (部分的実装)*
12
13 (部分的実装)*
19
19.31* 13.1.6* (部分的実装)
DR20: views::lazy_split および再設計された views::split P2210R2 12 16 19.31* 15.0.0*
DR20: 修正 ranges::istream_view P2432R1 12 16 19.31* 15.0.0*
DR20: view 所有権を持つ  ( FTM ) * P2415R2 12 14 19.31* 14.0.3*
DR20: chronoフォーマッタのロケール処理の修正  ( FTM ) * P2372R3
P2418R2
13 19.31*
DR20: 整数クラス型のクリーンアップ P2393R1 19.32*
DR20: コンパイル時フォーマット文字列チェック; std::format() ファミリーのバイナリコードサイズ削減  ( FTM ) * P2216R3 13 14 (partial)*
15
19.32* 14.0.3*
DR20: 非constフォーマット可能型のサポートを std::format に追加 P2418R2 13 15 19.32* 14.0.3*
DR20: std::basic_format_string P2508R1 13 15 19.35* 14.0.3*
DR20: std::basic_format_string P2508R1 13 15 19.35* 14.0.3*
DR20: ポイズンピルは毒性が強すぎる  ( FTM ) * P2602R2 14 19 19.36*
DR20: std::format フィル文字の許可 P2572R1 14 17 19.37*
DR20: std::format の幅推定の改善 P2675R1 14 17 19.38*
DR20: std::barrier のフェーズ完了保証  ( FTM ) * P2588R3 19.28 (16.8)* *
19.36*


C++23 機能


提案文書
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*

* - 星印が付いたセルにマウスを重ねると * 追加のポップアップ注釈が表示されます。
DR nn - 「DR」に続く数字 nn は欠陥報告書が適用される対象C++リビジョンを示します(例:DR20 → C++20)。

外部リンク

1. C++23 - Wikipedia