Skip to content

Commit b1ce436

Browse files
committed
move_iterator : メンバ型の表を整理してバージョン差異があるものは個別ページを用意した
1 parent 344ed2d commit b1ce436

7 files changed

Lines changed: 129 additions & 21 deletions

File tree

GLOBAL_QUALIFY_LIST.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@
149149
* indirect_unary_predicate[link /reference/iterator/indirect_unary_predicate.md]
150150
* indirectly_comparable[link /reference/iterator/indirectly_comparable.md]
151151
* input_iterator[link /reference/iterator/input_iterator.md]
152+
* iterator_traits[link /reference/iterator/iterator_traits.md]
153+
* iter_difference_t[link /reference/iterator/iter_difference_t.md]
154+
* iter_rvalue_reference_t[link /reference/iterator/iter_rvalue_reference_t.md]
155+
* iter_value_t[link reference/iterator/iter_value_t.md]
152156
* output_iterator[link /reference/iterator/output_iterator.md]
153157
* projected[link /reference/iterator/projected.md]
154158
* random_access_iterator[link /reference/iterator/random_access_iterator.md]

reference/iterator/move_iterator.md

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,28 +42,15 @@ namespace std {
4242
4343
## メンバ型
4444
45-
### C++17まで
46-
47-
| 名前 | 説明 | 対応バージョン |
48-
|------------------------------------------------------|-------------|-------|
49-
| `iterator_type` | `Iterator` | C++11 |
50-
| `difference_type` | [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::difference_type` | C++11 |
51-
| `pointer` | `Iterator` | C++11 |
52-
| `value_type` | [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::value_type` | C++11 |
53-
| `iterator_category` | [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::iterator_category` | C++11 |
54-
| `reference` | `value_type&&` | C++11 |
55-
56-
### C++20
57-
5845
| 名前 | 説明 | 対応バージョン |
5946
|------------------------------------------------------|-------------|-------|
60-
| `iterator_type` | `Iterator` | C++11 |
61-
| `difference_type` | [`iter_difference_t`](/reference/iterator/iter_difference_t.md)`<Iterator>` | C++20 |
62-
| `pointer` | `Iterator` | C++11 |
63-
| `value_type` | [`iter_value_t`](/reference/iterator/iter_value_t.md)`<Iterator>` | C++20 |
64-
| `iterator_category` | [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::iterator_category` <br/> ただし、[`contiguous_iterator_tag`](/reference/iterator/iterator_tag.md)となるときは`random_access_iterator_tag` | C++20 |
65-
| `iterator_concept` | [`input_iterator_tag`](/reference/iterator/iterator_tag.md) | C++20 |
66-
| `reference` | [`iter_rvalue_reference_t`](/reference/iterator/iter_rvalue_reference_t.md)`<Iterator>` | C++20 |
47+
| `iterator_type` | 元となるイテレータ型 `Iterator` | C++11 |
48+
| [`difference_type`](move_iterator/type-deferrence_type.md) | イテレータ間の差を表す数値型 | C++11 |
49+
| `pointer` | ポインタ型 `Iterator` | C++11 |
50+
| [`value_type`](move_iterator/type-value_type.md) | イテレータが指す値型 | C++11 |
51+
| [`iterator_category`](move_iterator/type-iterator_category.md) | イテレータの分類を表す型 | C++11 |
52+
| [`iterator_concept`](move_iterator/type-iterator_concept.md) | イテレータコンセプトを表す型 | C++20 |
53+
| [`reference`](move_iterator/type-reference.md) | イテレータを間接参照する型 | C++11 |
6754
6855
6956
## 非メンバ関数
@@ -137,6 +124,9 @@ int main()
137124
- [Visual C++](/implementation.md#visual_cpp): ??
138125

139126

140-
## 参照
127+
## 関連項目
141128
- [C++11 右辺値参照・ムーブセマンティクス](/lang/cpp11/rvalue_ref_and_move_semantics.md)
129+
130+
131+
## 参照
142132
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# deferrence_type
2+
* iterator[meta header]
3+
* std[meta namespace]
4+
* move_iterator[meta class]
5+
* type-alias[meta id-type]
6+
* cpp11[meta cpp]
7+
8+
```cpp
9+
using difference_type = iterator_traits<Iterator>::difference_type; // (1) C++11
10+
using difference_type = iter_difference_t<Iterator>; // (1) C++20
11+
```
12+
13+
## 概要
14+
イテレータの差を表す型。
15+
16+
17+
## バージョン
18+
### 言語
19+
- C++11
20+
21+
## 参照
22+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# iterator_category
2+
* iterator[meta header]
3+
* std[meta namespace]
4+
* move_iterator[meta class]
5+
* type-alias[meta id-type]
6+
* cpp11[meta cpp]
7+
8+
```cpp
9+
using iterator_category = 以下参照; // (1) C++11
10+
```
11+
12+
## 概要
13+
イテレータの分類を表す型。
14+
15+
- C++11:
16+
- [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::iterator_category`
17+
- C++20:
18+
- [`iterator_traits`](/reference/iterator/iterator_traits.md)`<Iterator>::iterator_category`
19+
- ただし、[`contiguous_iterator_tag`](/reference/iterator/iterator_tag.md)となる場合は[`random_access_iterator_tag`](/reference/iterator/iterator_tag.md)
20+
21+
22+
## バージョン
23+
### 言語
24+
- C++11
25+
26+
## 参照
27+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# iterator_concept
2+
* iterator[meta header]
3+
* std[meta namespace]
4+
* move_iterator[meta class]
5+
* type-alias[meta id-type]
6+
* cpp20[meta cpp]
7+
8+
```cpp
9+
using iterator_concept = input_iterator_tag; // (1) C++20
10+
```
11+
* input_iterator_tag[link /reference/iterator/iterator_tag.md]
12+
13+
## 概要
14+
イテレータコンセプトを表す型。
15+
16+
## バージョン
17+
### 言語
18+
- C++20
19+
20+
## 参照
21+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# reference
2+
* iterator[meta header]
3+
* std[meta namespace]
4+
* move_iterator[meta class]
5+
* type-alias[meta id-type]
6+
* cpp11[meta cpp]
7+
8+
```cpp
9+
using difference_type = value_type&&; // (1) C++11
10+
using difference_type = iter_rvalue_reference_t<Iterator>; // (1) C++20
11+
```
12+
13+
## 概要
14+
イテレータを間接参照する型。
15+
16+
17+
## バージョン
18+
### 言語
19+
- C++11
20+
21+
## 参照
22+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# value_type
2+
* iterator[meta header]
3+
* std[meta namespace]
4+
* move_iterator[meta class]
5+
* type-alias[meta id-type]
6+
* cpp11[meta cpp]
7+
8+
```cpp
9+
using difference_type = iterator_traits<Iterator>::value_type; // (1) C++11
10+
using difference_type = iter_value_t<Iterator>; // (1) C++20
11+
```
12+
13+
## 概要
14+
イテレータが指す値型。
15+
16+
17+
## バージョン
18+
### 言語
19+
- C++11
20+
21+
## 参照
22+
- [P0896R4 The One Ranges Proposal (was Merging the Ranges TS)](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0896r4.pdf)

0 commit comments

Comments
 (0)