From Jason Turner

[range.reverse.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmphi6qz78r/{from.md → to.md} +7 -11
tmp/tmphi6qz78r/{from.md → to.md} RENAMED
@@ -1,22 +1,19 @@
1
  #### Overview <a id="range.reverse.overview">[[range.reverse.overview]]</a>
2
 
3
- `reverse_view` takes a bidirectional `view` and produces another `view`
4
- that iterates the same elements in reverse order.
5
 
6
  The name `views::reverse` denotes a range adaptor object
7
  [[range.adaptor.object]]. Given a subexpression `E`, the expression
8
  `views::reverse(E)` is expression-equivalent to:
9
 
10
  - If the type of `E` is a (possibly cv-qualified) specialization of
11
  `reverse_view`, equivalent to `E.base()`.
12
- - Otherwise, if the type of `E` is cv-qualified
13
- ``` cpp
14
- subrange<reverse_iterator<I>, reverse_iterator<I>, K>
15
- ```
16
-
17
- for some iterator type `I` and value `K` of type `subrange_kind`,
18
  - if `K` is `subrange_kind::sized`, equivalent to:
19
  ``` cpp
20
  subrange<I, I, K>(E.end().base(), E.begin().base(), E.size())
21
  ```
22
  - otherwise, equivalent to:
@@ -29,12 +26,11 @@ The name `views::reverse` denotes a range adaptor object
29
 
30
  [*Example 1*:
31
 
32
  ``` cpp
33
  vector<int> is {0,1,2,3,4};
34
- reverse_view rv {is};
35
- for (int i : rv)
36
- cout << i << ' '; // prints: 4 3 2 1 0
37
  ```
38
 
39
  — *end example*]
40
 
 
1
  #### Overview <a id="range.reverse.overview">[[range.reverse.overview]]</a>
2
 
3
+ `reverse_view` takes a bidirectional view and produces another view that
4
+ iterates the same elements in reverse order.
5
 
6
  The name `views::reverse` denotes a range adaptor object
7
  [[range.adaptor.object]]. Given a subexpression `E`, the expression
8
  `views::reverse(E)` is expression-equivalent to:
9
 
10
  - If the type of `E` is a (possibly cv-qualified) specialization of
11
  `reverse_view`, equivalent to `E.base()`.
12
+ - Otherwise, if the type of `E` is cv
13
+ `subrange<reverse_iterator<I>, reverse_iterator<I>, K>` for some
14
+ iterator type `I` and value `K` of type `subrange_kind`,
 
 
 
15
  - if `K` is `subrange_kind::sized`, equivalent to:
16
  ``` cpp
17
  subrange<I, I, K>(E.end().base(), E.begin().base(), E.size())
18
  ```
19
  - otherwise, equivalent to:
 
26
 
27
  [*Example 1*:
28
 
29
  ``` cpp
30
  vector<int> is {0,1,2,3,4};
31
+ for (int i : is | views::reverse)
32
+ cout << i << ' '; // prints 4 3 2 1 0
 
33
  ```
34
 
35
  — *end example*]
36