Skip to content

Commit 518b6e2

Browse files
committed
C++26: 2025-03 mailingの言語機能を記載 #1415
1 parent 9b21060 commit 518b6e2

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

implementation-status.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,11 @@
318318
| P2865R6: [非推奨だった配列の比較を削除](/lang/cpp26/remove_deprecated_array_comparisons.md.nolink) | C++20で非推奨となっていた配列比較を削除 | 15 | 20 | | |
319319
| P1061R10: [構造化束縛でパックを導入できるようにする](/lang/cpp26/structured_bindings_can_introduce_a_pack.md.nolink) | タプルを分解する際に複数の変数をパックとして宣言できるようにする。`auto [a, ...xs] = f();` | | | | |
320320
| P3176R0: [先行するカンマのない省略記号を非推奨化](/lang/cpp26/the_oxford_variadic_comma.md.nolink) | `void f(int, ...);`はOK。`void f(int...);`は非推奨 | 15 | 20 | | |
321+
| P3074R7: [共用体をトリビアルに未初期化できるようにする](/lang/cpp26/trivial_unions.md.nolink) | `constexpr`での`union U { T storage[N]; };`を許可し、未初期化にできるようにする | | | | |
322+
| P2900R14: [契約プログラミングをサポートする](/lang/cpp26/contracts.md.nolink) | 関数の事前条件、事後条件、不変条件を記述できるようにする | | | | |
323+
| P2841R7: [コンセプトと変数テンプレートにテンプレートテンプレートパラメータのサポートを追加](/lang/cpp26/concept_and_variable-template_template-parameters.md.nolink) | テンプレート引数をあとで指定するテンプレートテンプレートパラメータを、コンセプトと変数テンプレートでも使用できるようにする | | | | |
324+
| P2786R13: [トリビアルな再配置](/lang/cpp26/trivial_relocatability.md.nolink) | ムーブ構築と破棄のためにビット単位のコピーとデストラクタ評価が必要になる型のオブジェクトを再配置するメカニズムを導入する | | | | |
325+
| P1967R14: [ファイルを読み込む`#embed`命令を追加](/lang/cpp26/embed.md) | バイナリファイルをインクルードするメカニズム。`#include`とちがって読み出しサイズなどの柔軟な指定ができる | 15 | | | |
321326

322327

323328
各処理系のC++26実装状況ページ:

lang/cpp26.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
4343
| 言語機能 | 説明 |
4444
|----------|------|
4545
| [関数宣言を削除する理由を指定できるようにする](/lang/cpp26/delete_reason.md) | `f() = delete("reason");` |
46+
| [契約プログラミングをサポートする](/lang/cpp26/contracts.md.nolink) | 関数の事前条件、事後条件、不変条件を記述できるようにする |
47+
48+
49+
### クラス
50+
51+
| 言語機能 | 説明 |
52+
|----------|------|
53+
| [変換コンストラクタという用語を廃止する](/lang/cpp26/abolish_the_term_converting_constructor.md.nolink) | 規格上で「`explicit`ではないコンストラクタ」という意味で定義されていたあまり使われない用語「変換コンストラクタ」を削除する |
54+
| [共用体をトリビアルに未初期化できるようにする](/lang/cpp26/trivial_unions.md.nolink) | `constexpr`での`union U { T storage[N]; };`を許可し、未初期化にできるようにする |
55+
| [トリビアルな再配置](/lang/cpp26/trivial_relocatability.md.nolink) | ムーブ構築と破棄のためにビット単位のコピーとデストラクタ評価が必要になる型のオブジェクトを再配置するメカニズムを導入する |
4656

4757

4858
### 属性
@@ -60,6 +70,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
6070
| [パラメータパックへのインデックスアクセスを許可](/lang/cpp26/pack_indexing.md.nolink) | 可変引数テンプレートのパラメータパックに添字アクセスできるようにする |
6171
| [制約式内での畳み込み式の順序付け](/lang/cpp26/ordering_of_constraints_involving_fold_expressions.md.nolink) | 畳み込み式では全体ではなく個別の制約を原子制約式として扱う |
6272
| [可変引数テンプレートで`friend`宣言をできるようにする](/lang/cpp26/variadic_friends.md.nolink) | クラステンプレートの可変引数テンプレートでまとめて`friend`宣言できるようにする |
73+
| [コンセプトと変数テンプレートにテンプレートテンプレートパラメータのサポートを追加](/lang/cpp26/concept_and_variable-template_template-parameters.md.nolink) | テンプレート引数をあとで指定するテンプレートテンプレートパラメータを、コンセプトと変数テンプレートでも使用できるようにする |
6374

6475

6576
### 定数式
@@ -73,6 +84,13 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
7384
| [定数評価での例外送出を許可](/lang/cpp26/allowing_exception_throwing_in_constant-evaluation.md.nolink) | 定数式の文脈での例外の送出と捕捉を許可 |
7485

7586

87+
### プリプロセッサ
88+
89+
| 言語機能 | 説明 |
90+
|----------|------|
91+
| [ファイルを読み込む`#embed`命令を追加](/lang/cpp26/embed.md) | バイナリファイルをインクルードするメカニズム。`#include`とちがって読み出しサイズなどの柔軟な指定ができる |
92+
93+
7694
### ソースコード
7795

7896
| 言語機能 | 説明 |
@@ -359,6 +377,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
359377
- [`std::bad_cast`](/reference/typeinfo/bad_cast.md)クラスの`what()`メンバ関数
360378
- [`std::bad_typeid`](/reference/typeinfo/bad_typeid.md)クラスの`what()`メンバ関数
361379
- [`<memory>`](/reference/memory.md)に、ポインタのアライメントを判定する[`std::is_sufficiently_aligned()`](/reference/memory/is_sufficiently_aligned.md)関数を追加。
380+
- [`<utility>`](/reference/utility.md)に、タイムトラベル最適化を抑止するための観測可能ポイントとして[`std::observable()`](/reference/utility/observable.md.nolink)を追加
362381

363382

364383
### デバッグ
@@ -383,6 +402,8 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
383402
### 機能の非推奨化
384403
- [`<type_traits>`](/reference/type_traits.md)[`std::is_trivial`](/reference/type_traits/is_trivial.md)を非推奨化
385404
- これは[`std::is_trivially_copyable`](/reference/type_traits/is_trivially_copyable.md)[`std::is_trivially_default_constructible`](/reference/type_traits/is_trivially_default_constructible.md)の2つが合わさったものであるが、それらは異なる状況で必要になるものであった
405+
- [`std::memory_order::consume`](/reference/atomic/memory_order.md)[`std::kill_dependency()`](/reference/atomic/kill_dependency.md)を非推奨化
406+
386407

387408
### 非推奨の取り消し
388409
- [`std::polymorphic_allocator`](/reference/memory_resource/polymorphic_allocator.md)`::`[`destroy()`](/reference/memory_resource/polymorphic_allocator/destroy.md)の非推奨を取り消し

0 commit comments

Comments
 (0)