From Jason Turner

[range.access.crend]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpixmjgaeo/{from.md → to.md} +11 -6
tmp/tmpixmjgaeo/{from.md → to.md} RENAMED
@@ -1,13 +1,18 @@
1
  ### `ranges::crend` <a id="range.access.crend">[[range.access.crend]]</a>
2
 
3
  The name `ranges::crend` denotes a customization point object
4
- [[customization.point.object]]. The expression `ranges::{}crend(E)` for
5
- a subexpression `E` of type `T` is expression-equivalent to:
6
 
7
- - `ranges::rend(static_cast<const T&>(E))` if `E` is an lvalue.
8
- - Otherwise, `ranges::rend(static_cast<const T&&>(E))`.
 
 
 
9
 
10
  [*Note 1*: Whenever `ranges::crend(E)` is a valid expression, the types
11
- `S` and `I` of `ranges::crend(E)` and `ranges::crbegin(E)` model
12
- `sentinel_for<S, I>`. *end note*]
 
 
13
 
 
1
  ### `ranges::crend` <a id="range.access.crend">[[range.access.crend]]</a>
2
 
3
  The name `ranges::crend` denotes a customization point object
4
+ [[customization.point.object]]. Given a subexpression `E` with type `T`,
5
+ let `t` be an lvalue that denotes the reified object for `E`. Then:
6
 
7
+ - If `E` is an rvalue and `enable_borrowed_range<remove_cv_t<T>>` is
8
+ `false`, `ranges::crend(E)` is ill-formed.
9
+ - Otherwise, let `U` be `ranges::rend(possibly-const-range(t))`.
10
+ `ranges::crend(E)` is expression-equivalent to
11
+ `const_sentinel<decltype(U)>(U)`.
12
 
13
  [*Note 1*: Whenever `ranges::crend(E)` is a valid expression, the types
14
+ `S` and `I` of the expressions `ranges::crend(E)` and
15
+ `ranges::crbegin(E)` model `sentinel_for<S, I>`. If `S` models
16
+ `input_iterator`, then `S` also models
17
+ *`constant-iterator`*. — *end note*]
18