@@ -9,7 +9,6 @@ namespace std::ranges {
99 template<copy_constructible T>
1010 requires is_object_v<T >
1111 class single_view : public view_interface<single_view<T >> { …… }; // (1) C++20
12-
1312 template<move_constructible T>
1413 requires is_object_v<T >
1514 class single_view : public view_interface<single_view<T >> { …… }; // (1) C++23
@@ -30,23 +29,37 @@ namespace std::ranges {
3029|----------|-------|--------|-------|---------|---------------|---------------|------------|--------|----------|------|
3130| | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
3231
32+ ## テンプレートパラメータ制約
33+ - (1) :
34+ - C++20 : 型`T`がコピー構築可能であること
35+ - C++23 : 型`T`がムーブ構築可能であること
36+
37+
3338## 効果
3439- 式`views::single(E)`の効果は`single_view<decay_t<decltype((E))>>(E)`と等しい。
3540
41+ ## メンバ変数
42+
43+ | 名前 | 説明 | 対応バージョン |
44+ |---------------------------------------------|--------------|-----------------------|
45+ | [`movable-box`](movable_box.md)`<T> value_` | 単一要素の値 | C++20 |
46+
47+
3648## メンバ関数
3749
3850| 名前 | 説明 | 対応バージョン |
3951|--------------------------------------------------|----------------------------------|----------------|
40- | [`(constructor)`](single_view/op_constructor.md.nolink) | コンストラクタ | C++20 |
41- | [`begin`](single_view/begin.md.nolink) | 先頭を指すイテレータを取得する | C++20 |
42- | [`end`](single_view/end.md.nolink) | 番兵を取得する | C++20 |
43- | [`data`](single_view/data.md.nolink) | 配列の先頭へのポインタを取得する | C++20 |
52+ | [`(constructor)`](single_view/op_constructor.md) | コンストラクタ | C++20 |
53+ | [`begin`](single_view/begin.md) | 先頭を指すイテレータを取得する | C++20 |
54+ | [`end`](single_view/end.md) | 番兵を取得する | C++20 |
55+ | [`data`](single_view/data.md) | 配列の先頭へのポインタを取得する | C++20 |
4456
4557## 静的メンバ関数
4658
47- | 名前 | 説明 | 対応バージョン |
48- |--------------------------------------------------|----------------------------------|----------------|
49- | [`size`](single_view/size.md.nolink) | 要素数を取得する | C++20 |
59+ | 名前 | 説明 | 対応バージョン |
60+ |---------------------------------|-----------------------------|----------------|
61+ | [`size`](single_view/size.md) | 要素数を取得する | C++20 |
62+ | [`empty`](single_view/empty.md) | Rangeが空かどうかを判定する | C++20 |
5063
5164## 継承しているメンバ関数
5265
@@ -56,12 +69,14 @@ namespace std::ranges {
5669| [`front`](view_interface/front.md) | 先頭要素への参照を取得する | C++20 |
5770| [`back`](view_interface/back.md) | 末尾要素への参照を取得する | C++20 |
5871| [`operator[]`](view_interface/op_at.md) | 要素へアクセスする | C++20 |
72+ | [`cbegin`](view_interface/cbegin.md) | 定数イテレータを取得する | C++23 |
73+ | [`cend`](view_interface/cend.md) | 定数イテレータ(番兵)を取得する | C++23 |
5974
6075## 推論補助
6176
62- | 名前 | 説明 | 対応バージョン |
63- |-------------------------------------------------------|------------------------------|----------------|
64- | [`(deduction_guide)`](single_view/op_deduction_guide.md.nolink ) | クラステンプレートの推論補助 | C++20 |
77+ | 名前 | 説明 | 対応バージョン |
78+ |---------------------------------------------------------- |------------------------------|----------------|
79+ | [`(deduction_guide)`](single_view/op_deduction_guide.md) | クラステンプレートの推論補助 | C++20 |
6580
6681## 例
6782```cpp example
0 commit comments