Skip to content

Commit 35f7f21

Browse files
committedAug 9, 2024·
locale : C++26対応として、wstring_convertとwbuffer_convertを削除 (close #1333)
1 parent 8ee965b commit 35f7f21

11 files changed

+37
-20
lines changed
 

‎lang/cpp26.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
332332

333333
### 機能の削除
334334
- C++98から非推奨となっていた`<strstream>`ライブラリを削除
335-
- C++17から非推奨となっていたUnicode変換ライブラリ[`<codecvt>`](/reference/codecvt.md)[`std::wstring_convert`](/reference/locale/wstring_convert.md)を削除
335+
- C++17から非推奨となっていたUnicode変換ライブラリ[`<codecvt>`](/reference/codecvt.md)[`std::wstring_convert`](/reference/locale/wstring_convert.md)クラス、[`std::wbuffer_convert`](/reference/locale/wbuffer_convert.md)クラスを削除
336336
- C++20から非推奨となっていた、[`std::basic_string`](/reference/string/basic_string.md)`::`[`reserve()`](/reference/string/basic_string/reserve.md)のパラメータなしのオーバーロードを削除
337337
- C++20から非推奨となっていた[`std::shared_ptr`](/reference/memory/shared_ptr.md)に対する、以下の古いアトミック操作関数のオーバーロードを削除
338338
- [`std::atomic_is_lock_free`](/reference/memory/shared_ptr/atomic_is_lock_free.md)

‎reference/locale.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
| `isgraph` | 図形文字の判定(function) | |
3131
| [`toupper`](locale/toupper.md) | 英大文字への変換(function) | |
3232
| [`tolower`](locale/tolower.md) | 英子文字への変換(function) | |
33-
| [`wstring_convert`](locale/wstring_convert.md) | `codecvt`による文字列変換(class template) | C++11<br/> C++17から非推奨 |
34-
| [`wbuffer_convert`](locale/wbuffer_convert.md) | `codecvt`によるストリームバッファ変換(class template) | C++11<br/> C++17から非推奨 |
33+
| [`wstring_convert`](locale/wstring_convert.md) | `codecvt`による文字列変換(class template) | C++11<br/> C++17から非推奨<br/> C++26で削除 |
34+
| [`wbuffer_convert`](locale/wbuffer_convert.md) | `codecvt`によるストリームバッファ変換(class template) | C++11<br/> C++17から非推奨<br/> C++26で削除 |
3535
| [`ctype_base`](locale/ctype_base.md) | 文字分類のための基底クラス(class) | |
3636
| [`ctype`](locale/ctype.md) | 文字の分類(class template) | |
3737
| [`ctype_byname`](locale/ctype_byname.md) | 名前による文字の分類(class template) | |

‎reference/locale/wbuffer_convert.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* class template[meta id-type]
55
* cpp11[meta cpp]
66
* cpp17deprecated[meta cpp]
7+
* cpp26removed[meta cpp]
78

89
```cpp
910
namespace std {
@@ -19,12 +20,12 @@ namespace std {
1920
(ここに、クラスの概要を記載する)
2021
2122
22-
## 非推奨の詳細
23+
## 非推奨・削除の詳細
2324
Unicodeの文字コード変換を行うこれらのクラスは、不正なコードポイントに対する安全なエラー処理の方法を提供していなかったため、セキュリティ上の欠陥があった。
2425
2526
仕様もあいまいであったため、不正なコードポイントに対してどのように振る舞うかも不明であった。
2627
27-
Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、[`<codecvt>`](/reference/codecvt.md)とそれに関連する機能の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨とする
28+
Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、[`<codecvt>`](/reference/codecvt.md)とそれに関連する機能の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨・削除とする
2829
2930
標準ライブラリにUnicodeの文字コード変換をする代替機能はないため、他の専門特化した文字コード変換のライブラリを使用すること。
3031
@@ -65,3 +66,4 @@ Unicode以外のShift_JISやBig5といった文字コードの利用が急激に
6566
## 参照
6667
- [N2007 Proposed Library Additions for Code Conversion](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2007.html)
6768
- [P0618R0 Deprecating `<codecvt>`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0618r0.html)
69+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* class template[meta id-type]
55
* cpp11[meta cpp]
66
* cpp17deprecated[meta cpp]
7+
* cpp26removed[meta cpp]
78

89
```cpp
910
namespace std {
@@ -44,12 +45,12 @@ namespace std {
4445
[utf8]: /reference/codecvt/codecvt_utf8.md
4546
4647
47-
## 非推奨の詳細
48+
## 非推奨・削除の詳細
4849
Unicodeの文字コード変換を行うこれらのクラスは、不正なコードポイントに対する安全なエラー処理の方法を提供していなかったため、セキュリティ上の欠陥があった。
4950
5051
仕様もあいまいであったため、不正なコードポイントに対してどのように振る舞うかも不明であった。
5152
52-
Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、[`<codecvt>`](/reference/codecvt.md)とそれに関連する機能の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨とする
53+
Unicode以外のShift_JISやBig5といった文字コードの利用が急激に減少している。標準ライブラリでの現代的なUnicodeの変換機能は非常に必要とされているが、[`<codecvt>`](/reference/codecvt.md)とそれに関連する機能の設計はお粗末なものだった。将来より良いものを作るために、これらの機能は非推奨・削除とする
5354
5455
標準ライブラリにUnicodeの文字コード変換をする代替機能はないため、他の専門特化した文字コード変換のライブラリを使用すること。
5556
@@ -121,3 +122,4 @@ int main()
121122
## 参照
122123
- [N2007 Proposed Library Additions for Code Conversion](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2007.html)
123124
- [P0618R0 Deprecating `<codecvt>`](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0618r0.html)
125+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/converted.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
std::size_t converted() const; // C++11
1112
std::size_t converted() const noexcept; // C++14
1213
```
1314

14-
このクラスはC++17から非推奨となった
15+
このクラスはC++17から非推奨となり、C++26で削除された
1516

1617
## 概要
1718
変換した要素数を取得する。
@@ -75,4 +76,4 @@ int main()
7576

7677
## 参照
7778
- [LWG Issue 2174. `wstring_convert::converted()` should be `noexcept`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2174)
78-
79+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/from_bytes.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
wide_string from_bytes(char byte); // (1)
@@ -14,7 +15,7 @@ wide_string from_bytes(const char* first,
1415
const char* last); // (4)
1516
```
1617
17-
このクラスはC++17から非推奨となった
18+
このクラスはC++17から非推奨となり、C++26で削除された
1819
1920
## 概要
2021
バイト文字列からワイド文字列に変換する。
@@ -107,3 +108,5 @@ int main()
107108
- [Visual C++](/implementation.md#visual_cpp): 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
108109

109110

111+
## 参照
112+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/op_assign.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
wstring_convert& operator=(const wstring_convert&) = default; // C++11
1112
wstring_convert& operator=(const wstring_convert&) = delete; // C++14
1213
```
1314

14-
このクラスはC++17から非推奨となった
15+
このクラスはC++17から非推奨となり、C++26で削除された
1516

1617
## 概要
1718
コピー代入演算子。
@@ -21,4 +22,4 @@ wstring_convert& operator=(const wstring_convert&) = delete; // C++14
2122

2223
## 参照
2324
- [LWG Issue 2176. Special members for `wstring_convert` and `wbuffer_convert`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2176)
24-
25+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/op_constructor.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
wstring_convert(Codecvt* pcvt = new Codecvt); // (1) C++11
@@ -25,7 +26,7 @@ explicit wstring_convert(
2526
wstring_convert(const wstring_convert&) = delete; // (5) C++14
2627
```
2728
28-
このクラスはC++17から非推奨となった
29+
このクラスはC++17から非推奨となり、C++26で削除された
2930
3031
## 概要
3132
- (1) : デフォルトコンストラクタ。
@@ -101,4 +102,5 @@ int main()
101102
## 参照
102103
- [LWG Issue 2175. `wstring_convert` and `wbuffer_convert` validity](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2175)
103104
- [LWG Issue 2176. Special members for `wstring_convert` and `wbuffer_convert`](http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2176)
104-
- [P0935R0 Eradicating unnecessarily explicit default constructors from the standard library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html)
105+
- [P0935R0 Eradicating unnecessarily explicit default constructors from the standard library](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0935r0.html)
106+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/op_destructor.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
~wstring_convert();
1112
```
1213

13-
このクラスはC++17から非推奨となった
14+
このクラスはC++17から非推奨となり、C++26で削除された
1415

1516
## 概要
1617
`Codecvt`型のインスタンスを破棄する。
@@ -26,4 +27,5 @@
2627
- [ICC](/implementation.md#icc):
2728
- [Visual C++](/implementation.md#visual_cpp): 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
2829

29-
30+
## 参照
31+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/state.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
state_type state() const;
1112
```
1213

13-
このクラスはC++17から非推奨となった
14+
このクラスはC++17から非推奨となり、C++26で削除された
1415

1516
## 概要
1617
変換の状態を取得する。
@@ -73,4 +74,5 @@ converted all
7374
- [ICC](/implementation.md#icc):
7475
- [Visual C++](/implementation.md#visual_cpp): 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
7576

76-
77+
## 参照
78+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

‎reference/locale/wstring_convert/to_bytes.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* function[meta id-type]
66
* cpp11[meta cpp]
77
* cpp17deprecated[meta cpp]
8+
* cpp26removed[meta cpp]
89

910
```cpp
1011
byte_string to_bytes(Elem wchar); // (1)
@@ -14,7 +15,7 @@ byte_string to_bytes(const Elem* first,
1415
const Elem* last); // (4)
1516
```
1617
17-
このクラスはC++17から非推奨となった
18+
このクラスはC++17から非推奨となり、C++26で削除された
1819
1920
## 概要
2021
ワイド文字列からバイト文字列に変換する。
@@ -106,4 +107,5 @@ int main()
106107
- [ICC](/implementation.md#icc):
107108
- [Visual C++](/implementation.md#visual_cpp): 2010 [mark verified], 2012 [mark verified], 2013 [mark verified]
108109

109-
110+
## 参照
111+
- [P2872R3 Remove `wstring_convert` From C++26](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2872r3.pdf)

0 commit comments

Comments
 (0)
Please sign in to comment.