Skip to content

Commit 7ad59de

Browse files
committed
コード例を修正
common_view の例で「common_rangeではないview」として take_view<vector<int>> が使われていましたが、これは common_range なのでエラーになっていました。 代わりに common_range でない take_while_view を使うように変更しました。 common_view::size() の例では sizeed_range かつ common_view でない view を用意する必要があったので、 views::counted() を使うように変更しました。
1 parent 00f29aa commit 7ad59de

File tree

6 files changed

+21
-19
lines changed

6 files changed

+21
-19
lines changed

reference/ranges/common_view/base.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,17 @@ constexpr V base() &&; // (2) C++20
3131
int main() {
3232
std::vector<int> vec = {1, 2, 3, 4, 5};
3333

34-
auto taken = vec | std::views::take(3);
34+
auto pred = [](int x) { return x <= 3; };
35+
auto taken = vec | std::views::take_while(pred);
3536
std::ranges::common_view cv(taken);
3637

3738
// (1) コピーして取得
3839
auto base1 = cv.base();
39-
static_assert(std::same_as<decltype(base1), std::ranges::take_view<std::ranges::ref_view<std::vector<int>>>>);
40+
static_assert(std::same_as<decltype(base1), std::ranges::take_while_view<std::ranges::ref_view<std::vector<int>>, decltype(pred)>>);
4041

4142
// (2) ムーブして取得
4243
auto base2 = std::move(cv).base();
43-
static_assert(std::same_as<decltype(base2), std::ranges::take_view<std::ranges::ref_view<std::vector<int>>>>);
44+
static_assert(std::same_as<decltype(base2), std::ranges::take_while_view<std::ranges::ref_view<std::vector<int>>, decltype(pred)>>);
4445

4546
// 取得したviewを使用
4647
for (int n : base1) {
@@ -51,8 +52,8 @@ int main() {
5152
```
5253
* base[color ff0000]
5354
* std::ranges::common_view[link ../common_view.md]
54-
* std::views::take[link ../take_view.md]
55-
* std::ranges::take_view[link ../take_view.md]
55+
* std::views::take_while[link ../take_while_view.md]
56+
* std::ranges::take_while_view[link ../take_while_view.md]
5657

5758
### 出力
5859
```

reference/ranges/common_view/begin.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ int main() {
4343
std::vector<int> vec = {1, 2, 3, 4, 5};
4444

4545
// common_rangeではないviewを作成
46-
auto taken = vec | std::views::take(3);
46+
auto taken = vec | std::views::take_while([](int x) { return x <= 3; });
4747
static_assert(!std::ranges::common_range<decltype(taken)>);
4848

4949
// common_viewでラップ
@@ -66,7 +66,7 @@ int main() {
6666
* end[link end.md]
6767
* std::ranges::common_range[link ../common_range.md]
6868
* std::ranges::common_view[link ../common_view.md]
69-
* std::views::take[link ../take_view.md]
69+
* std::views::take_while[link ../take_while_view.md]
7070

7171
### 出力
7272
```

reference/ranges/common_view/end.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ int main() {
4545
std::vector<int> vec = {1, 2, 3, 4, 5};
4646

4747
// common_rangeではないviewを作成
48-
auto taken = vec | std::views::take(3);
48+
auto taken = vec | std::views::take_while([](int x) { return x <= 3; });
4949

5050
// common_viewでラップ
5151
std::ranges::common_view cv(taken);
@@ -65,7 +65,7 @@ int main() {
6565
* end[color ff0000]
6666
* begin[link begin.md]
6767
* std::ranges::common_view[link ../common_view.md]
68-
* std::views::take[link ../take_view.md]
68+
* std::views::take_while[link ../take_while_view.md]
6969

7070
### 出力
7171
```

reference/ranges/common_view/op_constructor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ int main() {
3636
std::ranges::common_view<std::ranges::empty_view<int>> cv1;
3737
3838
// (2) 元となるRangeを受け取るコンストラクタ
39-
auto taken = vec | std::views::take(3);
39+
auto taken = vec | std::views::take_while([](int x) { return x <= 3; });
4040
std::ranges::common_view cv2(taken);
4141
4242
for (int n : cv2) {
@@ -47,7 +47,7 @@ int main() {
4747
```
4848
* std::ranges::common_view[color ff0000]
4949
* std::ranges::empty_view[link ../empty_view.md]
50-
* std::views::take[link ../take_view.md]
50+
* std::views::take_while[link ../take_while_view.md]
5151

5252
### 出力
5353
```

reference/ranges/common_view/op_deduction_guide.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,22 @@ int main() {
2626
std::vector<int> vec = {1, 2, 3, 4, 5};
2727
2828
// views::takeはcommon_rangeではない
29-
auto taken = vec | std::views::take(3);
29+
auto pred = [](int x) { return x <= 3; };
30+
auto taken = vec | std::views::take_while(pred);
3031
3132
// common_viewの型を明示的に指定する必要がない
3233
std::ranges::common_view cv{taken};
3334
3435
// 推論された型を確認
3536
static_assert(std::same_as<
3637
decltype(cv),
37-
std::ranges::common_view<std::ranges::take_view<std::ranges::ref_view<std::vector<int>>>>
38+
std::ranges::common_view<std::ranges::take_while_view<std::ranges::ref_view<std::vector<int>>, decltype(pred)>>
3839
>);
3940
}
4041
```
4142
* std::ranges::common_view[color ff0000]
42-
* std::views::take[link ../take_view.md]
43-
* std::ranges::take_view[link ../take_view.md]
43+
* std::views::take_while[link ../take_while_view.md]
44+
* std::ranges::take_while_view[link ../take_while_view.md]
4445

4546
### 出力
4647
```

reference/ranges/common_view/size.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@ constexpr auto size() const
2424
##
2525
```cpp example
2626
#include <ranges>
27-
#include <vector>
27+
#include <list>
2828
#include <iostream>
2929

3030
int main() {
31-
std::vector<int> vec = {1, 2, 3, 4, 5};
31+
std::list<int> ls = {1, 2, 3, 4, 5};
3232

3333
// sized_rangeなviewを作成
34-
auto taken = vec | std::views::take(3);
34+
auto taken = std::views::counted(ls.begin(), 3);
3535
static_assert(std::ranges::sized_range<decltype(taken)>);
3636

3737
// common_viewでラップ
@@ -48,7 +48,7 @@ int main() {
4848
* size[color ff0000]
4949
* std::ranges::sized_range[link ../sized_range.md]
5050
* std::ranges::common_view[link ../common_view.md]
51-
* std::views::take[link ../take_view.md]
51+
* std::views::counted[link ../counted.md]
5252

5353
### 出力
5454
```

0 commit comments

Comments
 (0)