From Jason Turner

[range.split.outer.value]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp9kdazm7i/{from.md → to.md} +50 -0
tmp/tmp9kdazm7i/{from.md → to.md} RENAMED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Class `split_view::outer-iterator::value_type` <a id="range.split.outer.value">[[range.split.outer.value]]</a>
2
+
3
+ ``` cpp
4
+ namespace std::ranges {
5
+ template<input_range V, forward_range Pattern>
6
+ requires view<V> && view<Pattern> &&
7
+ indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> &&
8
+ (forward_range<V> || tiny-range<Pattern>)
9
+ template<bool Const>
10
+ struct split_view<V, Pattern>::outer-iterator<Const>::value_type
11
+ : view_interface<value_type> {
12
+ private:
13
+ outer-iterator i_ = outer-iterator(); // exposition only
14
+ public:
15
+ value_type() = default;
16
+ constexpr explicit value_type(outer-iterator i);
17
+
18
+ constexpr inner-iterator<Const> begin() const requires copyable<outer-iterator>;
19
+ constexpr inner-iterator<Const> begin() requires (!copyable<outer-iterator>);
20
+ constexpr default_sentinel_t end() const;
21
+ };
22
+ }
23
+ ```
24
+
25
+ ``` cpp
26
+ constexpr explicit value_type(outer-iterator i);
27
+ ```
28
+
29
+ *Effects:* Initializes *i\_* with `std::move(i)`.
30
+
31
+ ``` cpp
32
+ constexpr inner-iterator<Const> begin() const requires copyable<outer-iterator>;
33
+ ```
34
+
35
+ *Effects:* Equivalent to:
36
+ `return `*`inner-iterator`*`<Const>{`*`i_`*`};`
37
+
38
+ ``` cpp
39
+ constexpr inner-iterator<Const> begin() requires (!copyable<outer-iterator>);
40
+ ```
41
+
42
+ *Effects:* Equivalent to:
43
+ `return `*`inner-iterator`*`<Const>{std::move(`*`i_`*`)};`
44
+
45
+ ``` cpp
46
+ constexpr default_sentinel_t end() const;
47
+ ```
48
+
49
+ *Effects:* Equivalent to: `return default_sentinel;`
50
+