Skip to content

Commit a877468

Browse files
committed
C++26 : 2023-12 Mailingのライブラリ変更に対応 #1220
1 parent 4936e04 commit a877468

File tree

3 files changed

+41
-6
lines changed

3 files changed

+41
-6
lines changed

lang/cpp23.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,11 @@ C++23とは、2023年中に改訂される予定の、C++バージョンの通
228228

229229

230230
### 機能の非推奨化
231-
- [`std::aligned_storage`](/reference/type_traits/aligned_storage.md)[`std::aligned_union`](/reference/type_traits/aligned_union.md)を非推奨化。これらの機能は未定義動作を引き起こし、間違った保証が行われ、よくないAPI設計が行われていたため、非推奨となる
231+
- [`std::aligned_storage`](/reference/type_traits/aligned_storage.md)[`std::aligned_union`](/reference/type_traits/aligned_union.md)を非推奨化。これらの機能は未定義動作を引き起こし、間違った保証が行われ、よくないAPI設計が行われていたため、非推奨とする
232232
- [`std::aligned_storage`](/reference/type_traits/aligned_storage.md)の代わりに`alignas(T)` [`std::byte`](/reference/cstddef/byte.md)`[sizeof(T)];`を使用することを推奨する
233233
- [`std::aligned_union`](/reference/type_traits/aligned_union.md)の代わりに`alignas(Ts...)` [`std::byte`](/reference/cstddef/byte.md)`[`[`std::max`](/reference/algorithm/max.md)`({sizeof(Ts)...})];`を使用することを推奨する
234-
- [`<limits>`](/reference/limits.md)の以下の非正規化数に関する機能を非推奨化。これらの機能は必ずしもコンパイル時に決まらない可能性のある値であり有用でないため、非推奨となる
234+
- [`std::allocator`](/reference/memory/allocator.md)のメンバ型`is_always_equal`を非推奨化。これはアロケータが状態をもたないことを表す型でありデフォルトでは[`true_type`](/reference/type_traits/true_type.md)となっている。状態をもつユーザー定義のアロケータ型でこのメンバ型の上書きを忘れることでバグが埋め込まれてしまっていたため誤用防止のために非推奨とする
235+
- [`<limits>`](/reference/limits.md)の以下の非正規化数に関する機能を非推奨化。これらの機能は必ずしもコンパイル時に決まらない可能性のある値であり有用でないため、非推奨とする
235236
- [`std::numeric_limits`](/reference/limits/numeric_limits.md)`::`[`has_denorm`](/reference/limits/numeric_limits/has_denorm.md)
236237
- [`std::numeric_limits`](/reference/limits/numeric_limits.md)`::`[`has_denorm_loss`](/reference/limits/numeric_limits/has_denorm_loss.md)
237238
- [`std::float_denorm_style`](/reference/limits/float_denorm_style.md)

lang/cpp26.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,15 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
5858
- 文字列エンコーディングを識別するライブラリとして、[`<text_encoding>`](/reference/text_encoding.md.nolink)を追加
5959
- 並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、[`<rcu>`](/reference/rcu.md.nolink)を追加
6060
- 並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加
61+
- デバッグサポートのライブラリとして[`<debugging>`](/reference/debugging.md.nolink)を追加
62+
- 線形代数ライブラリとして[`<linalg>`](/reference/linalg.md.nolink)を追加
6163

6264

6365
### コンテナ
6466
- [`std::mdspan`](/reference/mdspan/mdspan.md)のサブ配列版として[`std::submdspan`](/reference/mdspan/submdspan.md.nolink)を追加
67+
- [`std::span`](/reference/span/span.md)に、以下を追加
68+
- [`std::initializer_list`](/reference/initializer_list/initializer_list.md)をとるコンストラクタ
69+
- インデックスアクセスのための[`at()`](/reference/span/span/at.md.nolink)メンバ関数
6570
- 連想コンテナの以下のメンバ関数に、一時オブジェクトが生成されるコストを抑える拡張を追加
6671
- [`std::map`](/reference/map/map.md)
6772
- [`operator[]`](/reference/map/map/op_at.md)
@@ -104,8 +109,10 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
104109
- [`<charconv>`](/reference/charconv.md)の変換結果[`std::to_chars_result`](/reference/charconv/to_chars_result.md)[`std::from_chars_result`](/reference/charconv/from_chars_result.md)に、変換が正しく完了したかを判定する`operator bool`を追加
105110
- [`std::to_string()`](/reference/string/to_string.md)の仕様が`std::sprintf()`で説明されていたが、[`std::format()`](/reference/format/format.md)で定義するよう仕様を変更
106111
- [`std::basic_istringstream`](/reference/sstream/basic_istringstream.md)および[`std::basic_ostringstream`](/reference/sstream/basic_ostringstream.md)のコンストラクタおよび`str()`メンバ関数に、[`std::basic_string_view`](/reference/string_view/basic_string_view.md)を受け取るオーバーロードを追加
107-
- [`std::format()`](/reference/format/format.md)に、ポインタ出力のサポートを追加
108-
- [`std::format()`](/reference/format/format.md)で幅と精度を動的に指定した場合でも型の検証がコンパイル時に行われるよう仕様を見直し
112+
- [`std::format()`](/reference/format/format.md)に、以下の改善を導入
113+
- ポインタ出力のサポートを追加
114+
- 幅と精度を動的に指定した場合でも型の検証がコンパイル時に行われるよう仕様を見直し
115+
- コンパイル時の書式文字列だけでなく、実行時の書式文字列を渡せるよう仕様修正
109116

110117

111118
### ファイル
@@ -146,7 +153,13 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
146153
- [`std::chrono::leap_second`](/reference/chrono/leap_second.md)
147154

148155

149-
### 数学
156+
### 数値
157+
- [`<numeric>`](/reference/numeric.md)に、飽和演算 (Saturation Arithmetic) として、型の表現可能な範囲で演算を行う以下の関数を追加
158+
- [`std::add_sat()`](/reference/numeric/add_sat.md.nolink)
159+
- [`std::sub_sat()`](/reference/numeric/sub_sat.md.nolink)
160+
- [`std::mul_sat()`](/reference/numeric/mul_sat.md.nolink)
161+
- [`std::div_sat()`](/reference/numeric/div_sat.md.nolink)
162+
- [`std::saturation_cast()`](/reference/numeric/saturation_cast.md.nolink)
150163
- [`<cmath>`](/reference/cmath.md)の以下の関数を、`constexpr`に対応
151164
- [`std::cos()`](/reference/cmath/cos.md)
152165
- [`std::sin()`](/reference/cmath/sin.md)
@@ -198,6 +211,9 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
198211
- [`std::log10()`](/reference/complex/complex/log10.md)
199212
- [`std::pow()`](/reference/complex/complex/pow.md)
200213
- [`std::sqrt()`](/reference/complex/complex/sqrt.md)
214+
- [`std::complex`](/reference/complex/complex.md)を構造化束縛や、将来のパターンマッチで使用できるようタプルインタフェースの特殊化を追加
215+
- [`<random>`](/reference/random.md)の範囲`[0, 1)`の乱数を生成する[`std::generate_canonical()`](/reference/random/generate_canonical.md)を、望ましい統計的性質を保証するようアルゴリズムと制約を変更
216+
201217

202218
### ユーティリティ
203219
- [`std::variant`](/reference/variant/variant.md)クラスに、メンバ関数版の[`visit()`](/reference/variant/variant/visit.md.nolink)を追加
@@ -208,7 +224,16 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
208224
- [`quecto`](/reference/ratio/si_prefix.md) (10<sup>−30</sup>)
209225

210226

227+
### デバッグ
228+
- [`assert`](/reference/cassert/assert.md)マクロの引数としてカンマを含む式を指定できるよう、可変引数化
229+
230+
211231
### 型特性
212232
- 共用体のどのメンバがアクティブかを判定するための関数として、[`<type_traits>`](/reference/type_traits.md)[`std::is_within_lifetime()`](/reference/type_traits/is_within_lifetime.md.nolink)を追加
213233
- [`std::bitset`](/reference/bitset/bitset.md)に、[`std::basic_string_view`](/reference/string_view/basic_string_view.md)を受け取るコンストラクタを追加
214234

235+
### 機能の削除
236+
- C++20から非推奨となっていた、[`std::basic_string`](/reference/string/basic_string.md)`::`[`reserve()`](/reference/string/basic_string/reserve.md)のパラメータなしのオーバーロードを削除
237+
- C++23から非推奨となっていた、[`std::allocator`](/reference/memory/allocator.md)のメンバ型`is_always_equal`を削除
238+
- C++17から非推奨となっていたUnicode変換ライブラリ[`<codecvt>`](/reference/codecvt.md)を削除
239+

reference.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
- [レンジライブラリ](#ranges)
1414
- [アルゴリズムライブラリ](#algorithm)
1515
- [数値ライブラリ](#numerics)
16+
- [デバッグライブラリ](#debug)
1617
- [入出力ライブラリ](#io)
1718
- [正規表現ライブラリ](#regular-expressions)
1819
- [アトミック操作ライブラリ](#atomic-operations)
@@ -92,7 +93,7 @@
9293
|--------------------------------------|----------------------|----------------|
9394
| [`<locale>`](/reference/locale.md) | ロケール | |
9495
| [`<text_encoding>`](/reference/text_encoding.md.nolink) | 文字列エンコーディングの識別 | C++26 |
95-
| [`<codecvt>`](/reference/codecvt.md) | コード変換ファセット | C++11<br/> C++17から非推奨 |
96+
| [`<codecvt>`](/reference/codecvt.md) | コード変換ファセット | C++11<br/> C++17から非推奨<br/> C++26で削除 |
9697

9798

9899
## <a id="container" href="#container">コンテナライブラリ</a>
@@ -148,6 +149,14 @@
148149
| [`<valarray>`](/reference/valarray.md) | 数値の配列 | |
149150
| [`<numeric>`](/reference/numeric.md) | 一般的な数値操作 | |
150151
| [`<numbers>`](/reference/numbers.md) | 数値 | C++20 |
152+
| [`<linalg>`](/reference/linalg.md.nolink) | 線形代数 | C++26 |
153+
154+
155+
## <a id="debug" href="debug">デバッグライブラリ</a>
156+
157+
| ヘッダ | 説明 | 対応バージョン |
158+
|----------------------------------------|------------------|----------------|
159+
| [`<debugging>`](/reference/debugging.md.nolink) | デバッグサポート | C++26 |
151160

152161

153162
## <a id="io" href="#io">入出力ライブラリ</a>

0 commit comments

Comments
 (0)