File tree Expand file tree Collapse file tree 2 files changed +66
-1
lines changed
Expand file tree Collapse file tree 2 files changed +66
-1
lines changed Original file line number Diff line number Diff line change @@ -61,12 +61,13 @@ namespace std::ranges {
6161| [`begin`](iota_view/begin.md) | 先頭を指すイテレータを取得する | C++20 |
6262| [`end`](iota_view/end.md) | 番兵を取得する | C++20 |
6363| [`size`](iota_view/size.md) | 有限長のとき、要素数を取得する | C++20 |
64+ | [`empty`](iota_view/empty.md) | Rangeが空かどうかを判定する | C++26 |
6465
6566## 継承しているメンバ関数
6667
6768| 名前 | 説明 | 対応バージョン |
6869|----------------------------------------------|------------------------------------------|----------------|
69- | [`empty`](view_interface/empty.md) | Rangeが空かどうかを判定する | C++20 |
70+ | [`empty`](view_interface/empty.md) | Rangeが空かどうかを判定する | C++20(C++23まで) |
7071| [`operator bool`](view_interface/op_bool.md) | Rangeが空でないかどうかを判定する | C++20 |
7172| [`front`](view_interface/front.md) | 先頭要素への参照を取得する | C++20 |
7273| [`back`](view_interface/back.md) | 有限長のとき、末尾要素への参照を取得する | C++20 |
@@ -201,3 +202,5 @@ FizzBuzz
201202- [C++20 ranges](https://techbookfest.org/product/5134506308665344)
202203- [P2325R3 Views should not be required to be default constructible](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2325r3.html) (本提案文書はC++20に遡って適用されている)
203204- [P2367R0 Remove misuses of list-initialization from Clause 24](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2367r0.html) (本提案文書はC++20に遡って適用されている)
205+ - [LWG Issue 4001. `iota_view` should provide `empty`](https://cplusplus.github.io/LWG/issue4001)
206+
Original file line number Diff line number Diff line change 1+ # empty
2+ * ranges[ meta header]
3+ * std::ranges[ meta namespace]
4+ * iota_view[ meta class]
5+ * function[ meta id-type]
6+ * cpp26[ meta cpp]
7+
8+ ``` cpp
9+ constexpr bool empty () const ;
10+ ```
11+
12+ ## 概要
13+
14+ [ ` iota_view ` ] ( ../iota_view.md ) が空かどうかを取得する
15+
16+ ## 効果
17+
18+ ``` cpp
19+ return value_ == bound_;
20+ ```
21+
22+ 空の場合に` true ` を返す。
23+
24+ ## 備考
25+
26+ C++20当初、この関数は[ ` view_interface ` ] ( /reference/ranges/view_interface.md ) を通じて提供されていた。しかし、[ ` size() ` ] ( size.md ) の制約を満たさない様な型の範囲を生成しなおかつ` input_range ` となる場合、その様な範囲は空ではないことが分かるにも関わらず` view_interface::empty() ` は無効化されてしまっていた。
27+
28+ この問題を回避するために、本メンバ関数が追加された。
29+
30+ ## 例
31+ ``` cpp example
32+ #include < ranges>
33+ #include < vector>
34+ #include < iostream>
35+
36+ int main () {
37+ std::vector<int > v;
38+ auto it = std::back_inserter(v);
39+
40+ auto r = std::views::iota(it);
41+ std::cout << r.empty() << "\n";
42+ }
43+ ```
44+
45+ ### 出力
46+ ```
47+ false
48+ ```
49+
50+ ## バージョン
51+ ### 言語
52+ - C++20
53+
54+ ### 処理系
55+ - [ Clang] ( /implementation.md#clang ) : ?
56+ - [ GCC] ( /implementation.md#gcc ) : ?
57+ - [ ICC] ( /implementation.md#icc ) : ?
58+ - [ Visual C++] ( /implementation.md#visual_cpp ) : ?
59+
60+ ## 参照
61+
62+ - [ LWG Issue 4001. ` iota_view ` should provide ` empty ` ] ( https://cplusplus.github.io/LWG/issue4001 )
You can’t perform that action at this time.
0 commit comments