Skip to content

Commit 0d8274f

Browse files
committed
basic_istream_view : メンバ関数を追加 #713
1 parent c658129 commit 0d8274f

File tree

5 files changed

+181
-3
lines changed

5 files changed

+181
-3
lines changed

GLOBAL_QUALIFY_LIST.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@
145145
* bidirectional_iterator[link /reference/iterator/bidirectional_iterator.md]
146146
* contiguous_iterator[link /reference/iterator/contiguous_iterator.md]
147147
* default_sentinel_t[link /reference/iterator/default_sentinel_t.md]
148+
* default_sentinel[link /reference/iterator/default_sentinel_t.md]
148149
* forward_iterator[link /reference/iterator/forward_iterator.md]
149150
* indirect_binary_predicate[link /reference/iterator/indirect_binary_predicate.md]
150151
* indirect_unary_predicate[link /reference/iterator/indirect_unary_predicate.md]
@@ -254,6 +255,7 @@
254255
* std::span[link /reference/span/span.md]
255256
* std::dynamic_extent[link /reference/span/dynamic_extent.md]
256257
* <sstream>[link /reference/sstream.md]
258+
* std::istringstream[link /reference/sstream/basic_istream.md]
257259
* <stack>[link /reference/stack.md]
258260
* <stacktrace>[link /reference/stacktrace.md]
259261
* <stdexcept>[link /reference/stdexcept.md]

reference/ranges/basic_istream_view.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,17 @@ concept stream-extractable = requires(basic_istream<CharT, Traits>& is, Val& t)
6969

7070
| 名前 | 説明 | 対応バージョン |
7171
|----------------------------------------------------------|----------------------------------|----------------|
72-
| [`(constructor)`](basic_istream_view/op_constructor.md.nolink) | コンストラクタ | C++20 |
73-
| [`begin`](basic_istream_view/begin.md.nolink) | ストリームから値を1つ読み、それを指すイテレータを取得する | C++20 |
74-
| [`end`](basic_istream_view/end.md.nolink) | 番兵を取得する | C++20 |
72+
| [`(constructor)`](basic_istream_view/op_constructor.md) | コンストラクタ | C++20 |
73+
| [`begin`](basic_istream_view/begin.md) | ストリームから値を1つ読み、それを指すイテレータを取得する | C++20 |
74+
| [`end`](basic_istream_view/end.md) | 番兵を取得する | C++20 |
75+
76+
## 継承しているメンバ関数
77+
78+
| 名前 | 説明 | 対応バージョン |
79+
|----------------------------------------------|------------------------------ ----|----------------|
80+
| [`cbegin`](view_interface/cbegin.md) | 定数イテレータを取得する | C++23 |
81+
| [`cend`](view_interface/cend.md) | 定数イテレータ(番兵)を取得する | C++23 |
82+
7583

7684
##
7785
```cpp example
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# begin
2+
* ranges[meta header]
3+
* std::ranges[meta namespace]
4+
* basic_istream_view[meta class]
5+
* function[meta id-type]
6+
* cpp20[meta cpp]
7+
8+
```cpp
9+
constexpr auto begin(); // (1) C++20
10+
```
11+
12+
## 概要
13+
14+
ストリームから値を1つ読み、それを指すイテレータを取得する。
15+
16+
17+
## 効果
18+
以下と等価:
19+
20+
```cpp
21+
*stream_ >> value_;
22+
return iterator{*this};
23+
```
24+
25+
26+
## 例
27+
28+
```cpp example
29+
#include <ranges>
30+
#include <sstream>
31+
#include <iostream>
32+
33+
int main() {
34+
auto iss = std::istringstream{"1 2 3 4 5"};
35+
auto r = std::views::istream<int>(iss);
36+
auto it = r.begin();
37+
std::cout << *it << std::endl;
38+
}
39+
```
40+
* begin[color ff0000]
41+
42+
### 出力
43+
44+
```
45+
1
46+
```
47+
48+
## バージョン
49+
### 言語
50+
- C++20
51+
52+
### 処理系
53+
- [Clang](/implementation.md#clang): 13.0.0 [mark verified]
54+
- [GCC](/implementation.md#gcc): 10.1.0 [mark verified]
55+
- [ICC](/implementation.md#icc): ?
56+
- [Visual C++](/implementation.md#visual_cpp): 2019 Update 10 [mark verified]
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# end
2+
* ranges[meta header]
3+
* std::ranges[meta namespace]
4+
* basic_istream_view[meta class]
5+
* function[meta id-type]
6+
* cpp20[meta cpp]
7+
8+
```cpp
9+
constexpr default_sentinel_t end() const noexcept; // (1) C++20
10+
```
11+
12+
## 概要
13+
14+
番兵を取得する。
15+
16+
17+
## 戻り値
18+
以下と等価:
19+
20+
```cpp
21+
return default_sentinel;
22+
```
23+
24+
25+
##
26+
27+
```cpp example
28+
#include <ranges>
29+
#include <sstream>
30+
#include <iostream>
31+
32+
int main() {
33+
auto iss = std::istringstream{"1 2 3 4 5"};
34+
auto r = std::views::istream<int>(iss);
35+
auto it = r.begin();
36+
auto last = r.end();
37+
38+
for (; it != last; ++it) {
39+
std::cout << *it << ' ';
40+
}
41+
}
42+
```
43+
* end[color ff0000]
44+
* begin()[link begin.md]
45+
46+
### 出力
47+
48+
```
49+
1 2 3 4 5
50+
```
51+
52+
## バージョン
53+
### 言語
54+
- C++20
55+
56+
### 処理系
57+
- [Clang](/implementation.md#clang): 13.0.0 [mark verified]
58+
- [GCC](/implementation.md#gcc): 10.1.0 [mark verified]
59+
- [ICC](/implementation.md#icc): ?
60+
- [Visual C++](/implementation.md#visual_cpp): 2019 Update 10 [mark verified]
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# コンストラクタ
2+
* ranges[meta header]
3+
* std::ranges[meta namespace]
4+
* basic_istream_view[meta class]
5+
* function[meta id-type]
6+
* cpp20[meta cpp]
7+
8+
```cpp
9+
constexpr explicit
10+
basic_istream_view(basic_istream<CharT, Traits>& stream); // (1) C++20
11+
```
12+
13+
## 概要
14+
[`basic_istream_view`](../basic_istream_view.md)オブジェクトを構築する。
15+
16+
- (1) : [`basic_istream`](/reference/istream/basic_istream.md)の参照を受け取るコンストラクタ
17+
18+
19+
## 効果
20+
21+
- (1) : [`addressof`](/reference/memory/addressof.md)`(stream)`をメンバ変数`stream_`に保持する
22+
23+
24+
## 例
25+
```cpp example
26+
#include <ranges>
27+
#include <sstream>
28+
#include <iostream>
29+
30+
int main() {
31+
auto iss = std::istringstream{"1 2 3 4 5"};
32+
33+
for (int i : std::views::istream<int>(iss)) {
34+
std::cout << i;
35+
}
36+
}
37+
```
38+
39+
### 出力
40+
```
41+
12345
42+
```
43+
44+
## バージョン
45+
### 言語
46+
- C++20
47+
48+
### 処理系
49+
- [Clang](/implementation.md#clang): 13.0.0 [mark verified]
50+
- [GCC](/implementation.md#gcc): 10.1.0 [mark verified]
51+
- [ICC](/implementation.md#icc): ?
52+
- [Visual C++](/implementation.md#visual_cpp): 2019 Update 10 [mark verified]

0 commit comments

Comments
 (0)