From Jason Turner

[range.subrange.access]

Diff to HTML by rtfpessoa

tmp/tmp5o3xis5w/{from.md → to.md} RENAMED
@@ -5,11 +5,11 @@ constexpr I begin() const requires copyable<I>;
5
  ```
6
 
7
  *Effects:* Equivalent to: `return `*`begin_`*`;`
8
 
9
  ``` cpp
10
- [[nodiscard]] constexpr I begin() requires (!copyable<I>);
11
  ```
12
 
13
  *Effects:* Equivalent to: `return std::move(`*`begin_`*`);`
14
 
15
  ``` cpp
@@ -34,11 +34,11 @@ constexpr make-unsigned-like-t<iter_difference_t<I>> size() const
34
  - If *StoreSize* is `true`, equivalent to: `return `*`size_`*`;`
35
  - Otherwise, equivalent to:
36
  `return `*`to-unsigned-like`*`(`*`end_`*` - `*`begin_`*`);`
37
 
38
  ``` cpp
39
- [[nodiscard]] constexpr subrange next(iter_difference_t<I> n = 1) const &
40
  requires forward_iterator<I>;
41
  ```
42
 
43
  *Effects:* Equivalent to:
44
 
@@ -47,22 +47,22 @@ auto tmp = *this;
47
  tmp.advance(n);
48
  return tmp;
49
  ```
50
 
51
  ``` cpp
52
- [[nodiscard]] constexpr subrange next(iter_difference_t<I> n = 1) &&;
53
  ```
54
 
55
  *Effects:* Equivalent to:
56
 
57
  ``` cpp
58
  advance(n);
59
  return std::move(*this);
60
  ```
61
 
62
  ``` cpp
63
- [[nodiscard]] constexpr subrange prev(iter_difference_t<I> n = 1) const
64
  requires bidirectional_iterator<I>;
65
  ```
66
 
67
  *Effects:* Equivalent to:
68
 
 
5
  ```
6
 
7
  *Effects:* Equivalent to: `return `*`begin_`*`;`
8
 
9
  ``` cpp
10
+ constexpr I begin() requires (!copyable<I>);
11
  ```
12
 
13
  *Effects:* Equivalent to: `return std::move(`*`begin_`*`);`
14
 
15
  ``` cpp
 
34
  - If *StoreSize* is `true`, equivalent to: `return `*`size_`*`;`
35
  - Otherwise, equivalent to:
36
  `return `*`to-unsigned-like`*`(`*`end_`*` - `*`begin_`*`);`
37
 
38
  ``` cpp
39
+ constexpr subrange next(iter_difference_t<I> n = 1) const &
40
  requires forward_iterator<I>;
41
  ```
42
 
43
  *Effects:* Equivalent to:
44
 
 
47
  tmp.advance(n);
48
  return tmp;
49
  ```
50
 
51
  ``` cpp
52
+ constexpr subrange next(iter_difference_t<I> n = 1) &&;
53
  ```
54
 
55
  *Effects:* Equivalent to:
56
 
57
  ``` cpp
58
  advance(n);
59
  return std::move(*this);
60
  ```
61
 
62
  ``` cpp
63
+ constexpr subrange prev(iter_difference_t<I> n = 1) const
64
  requires bidirectional_iterator<I>;
65
  ```
66
 
67
  *Effects:* Equivalent to:
68