From Jason Turner

[range.reverse.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp683kha94/{from.md → to.md} +5 -10
tmp/tmp683kha94/{from.md → to.md} RENAMED
@@ -6,25 +6,20 @@ iterates the same elements in reverse order.
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:
20
- ``` cpp
21
- subrange<I, I, K>(E.end().base(), E.begin().base())
22
- ```
23
 
24
  However, in either case `E` is evaluated only once.
25
- - Otherwise, equivalent to `reverse_view{E}`.
26
 
27
  [*Example 1*:
28
 
29
  ``` cpp
30
  vector<int> is {0,1,2,3,4};
 
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`, then `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`, then
16
+ `subrange<I, I, K>(E.end().base(), E.begin().base(), E.size())`;
17
+ - otherwise, `subrange<I, I, K>(E.end().base(), E.begin().base())`.
 
 
 
 
 
18
 
19
  However, in either case `E` is evaluated only once.
20
+ - Otherwise, `reverse_view{E}`.
21
 
22
  [*Example 1*:
23
 
24
  ``` cpp
25
  vector<int> is {0,1,2,3,4};