From Jason Turner

[range.join.with.sentinel]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp_1o2jwh7/{from.md → to.md} +48 -0
tmp/tmp_1o2jwh7/{from.md → to.md} RENAMED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Class template `join_with_view::sentinel` <a id="range.join.with.sentinel">[[range.join.with.sentinel]]</a>
2
+
3
+ ``` cpp
4
+ namespace std::ranges {
5
+ template<input_range V, forward_range Pattern>
6
+ requires view<V> && input_range<range_reference_t<V>>
7
+ && view<Pattern> && compatible-joinable-ranges<range_reference_t<V>, Pattern>
8
+ template<bool Const>
9
+ class join_with_view<V, Pattern>::sentinel {
10
+ using Parent = maybe-const<Const, join_with_view>; // exposition only
11
+ using Base = maybe-const<Const, V>; // exposition only
12
+ sentinel_t<Base> end_ = sentinel_t<Base>(); // exposition only
13
+
14
+ constexpr explicit sentinel(Parent& parent); // exposition only
15
+
16
+ public:
17
+ sentinel() = default;
18
+ constexpr sentinel(sentinel<!Const> s)
19
+ requires Const && convertible_to<sentinel_t<V>, sentinel_t<Base>>;
20
+
21
+ template<bool OtherConst>
22
+ requires sentinel_for<sentinel_t<Base>, iterator_t<maybe-const<OtherConst, V>>>
23
+ friend constexpr bool operator==(const iterator<OtherConst>& x, const sentinel& y);
24
+ };
25
+ }
26
+ ```
27
+
28
+ ``` cpp
29
+ constexpr explicit sentinel(Parent& parent);
30
+ ```
31
+
32
+ *Effects:* Initializes *end\_* with `ranges::end(parent.`*`base_`*`)`.
33
+
34
+ ``` cpp
35
+ constexpr sentinel(sentinel<!Const> s)
36
+ requires Const && convertible_to<sentinel_t<V>, sentinel_t<Base>>;
37
+ ```
38
+
39
+ *Effects:* Initializes *end\_* with `std::move(s.`*`end_`*`)`.
40
+
41
+ ``` cpp
42
+ template<bool OtherConst>
43
+ requires sentinel_for<sentinel_t<Base>, iterator_t<maybe-const<OtherConst, V>>>
44
+ friend constexpr bool operator==(const iterator<OtherConst>& x, const sentinel& y);
45
+ ```
46
+
47
+ *Effects:* Equivalent to: `return x.`*`outer`*`() == y.`*`end_`*`;`
48
+