Skip to content

Commit fe9f6f7

Browse files
committed
optional, tuple, pair, variant : C++26対応としてテンプレートパラメータ制約を整理 #1340
1 parent 9437e4e commit fe9f6f7

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

reference/optional/optional/op_equal.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ namespace std {
2929
`optional`オブジェクトの等値比較を行う。
3030
3131
32-
## 要件
33-
- (1), (3), (4) : 型`T`が`==`で比較可能であること
32+
## テンプレートパラメータ制約
33+
- (1), (3), (4) : 型`T`が`==`で比較可能であり、その戻り値型が`bool`に変換可能であること
3434
3535
3636
## 戻り値
@@ -114,3 +114,5 @@ int main()
114114
- [LWG Issue 2934. `optional<const T>` doesn't compare with `T`](https://wg21.cmeerw.net/lwg/issue2934)
115115
- [P1614R2 The Mothership has Landed](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html)
116116
- C++20での三方比較演算子の追加と、関連する演算子の自動導出
117+
- [P2944R3 Comparisons for `reference_wrapper`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2944r3.html)
118+
- C++26でテンプレートパラメータ制約が整理された

reference/tuple/tuple/op_equal.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace std {
2626
2つの[`tuple`](../tuple.md)オブジェクトの等値比較を行う。また、[`tuple-like`](../tuple-like.md)なオブジェクトとの等値比較を行う。(C++23以降)
2727
2828
29-
## 要件
29+
## テンプレートパラメータ制約
3030
- (1) :
3131
- 2つの[`tuple`](../tuple.md)オブジェクトの要素数が同じであること。(具体的には`sizeof...(TTypes) == sizeof...(UTypes)`であること。)
3232
- [`tuple`](../tuple.md)の要素`std::`[`get`](get.md)`<i>(t)`と`std::`[`get`](get.md)`<i>(u)`において、すべての要素の比較 `std::`[`get`](get.md)`<i>(t) == std::`[`get`](get.md)`<i>(u)` の比較結果が`bool`に変換可能な型(C++23 以降は[`boolean-testable`](/reference/concepts/boolean-testable.md)を満たせばよい)であること。
@@ -94,3 +94,5 @@ false
9494
- [P1614R2 The Mothership has Landed](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html)
9595
- C++20での三方比較演算子の追加と、関連する演算子の自動導出
9696
- [P2165R4 Compatibility between `tuple`, `pair` and *tuple-like* objects](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2165r4.pdf)
97+
- [P2944R3 Comparisons for `reference_wrapper`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2944r3.html)
98+
- C++26でテンプレートパラメータ制約が整理された

reference/utility/pair/op_equal.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ namespace std {
2626
2つの`pair`の等値比較を行う
2727
2828
29+
## テンプレートパラメータ制約
30+
- 式`x.first == y.first`と`x.second == y.second`が妥当であり、型`decltype(x.first == y.first)`と`decltype(x.second == y.second)`が[boolean-testable](/reference/concepts/boolean-testable.md)のモデルであること
31+
32+
2933
## 戻り値
3034
```cpp
3135
return x.first == y.first && x.second == y.second;
@@ -65,3 +69,5 @@ false
6569
- [N3471 Constexpr Library Additions: utilities, v3](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3471.html)
6670
- [P1614R2 The Mothership has Landed](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1614r2.html)
6771
- C++20での三方比較演算子の追加と、関連する演算子の自動導出
72+
- [P2944R3 Comparisons for `reference_wrapper`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2944r3.html)
73+
- C++26でテンプレートパラメータ制約が整理された

reference/variant/variant/op_equal.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,5 @@ int main()
5959

6060
## 参照
6161
- [P0393R3 Making Variant Greater Equal](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0393r3.html)
62+
- [P2944R3 Comparisons for `reference_wrapper`](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2944r3.html)
63+
- C++26でテンプレートパラメータ制約が整理された

0 commit comments

Comments
 (0)