From Jason Turner

[counted.iter.cust]

Diff to HTML by rtfpessoa

tmp/tmpbzcbrxc4/{from.md → to.md} RENAMED
@@ -1,24 +1,24 @@
1
  #### Customizations <a id="counted.iter.cust">[[counted.iter.cust]]</a>
2
 
3
  ``` cpp
4
- friend constexpr iter_rvalue_reference_t<I>
5
  iter_move(const counted_iterator& i)
6
  noexcept(noexcept(ranges::iter_move(i.current)))
7
  requires input_iterator<I>;
8
  ```
9
 
10
- *Preconditions:* `i.length > 0` is `true`.
11
 
12
  *Effects:* Equivalent to: `return ranges::iter_move(i.current);`
13
 
14
  ``` cpp
15
  template<indirectly_swappable<I> I2>
16
  friend constexpr void
17
  iter_swap(const counted_iterator& x, const counted_iterator<I2>& y)
18
  noexcept(noexcept(ranges::iter_swap(x.current, y.current)));
19
  ```
20
 
21
- *Preconditions:* Both `x.length > 0` and `y.length > 0` are `true`.
22
 
23
  *Effects:* Equivalent to `ranges::iter_swap(x.current, y.current)`.
24
 
 
1
  #### Customizations <a id="counted.iter.cust">[[counted.iter.cust]]</a>
2
 
3
  ``` cpp
4
+ friend constexpr decltype(auto)
5
  iter_move(const counted_iterator& i)
6
  noexcept(noexcept(ranges::iter_move(i.current)))
7
  requires input_iterator<I>;
8
  ```
9
 
10
+ `i.length > 0` is `true`.
11
 
12
  *Effects:* Equivalent to: `return ranges::iter_move(i.current);`
13
 
14
  ``` cpp
15
  template<indirectly_swappable<I> I2>
16
  friend constexpr void
17
  iter_swap(const counted_iterator& x, const counted_iterator<I2>& y)
18
  noexcept(noexcept(ranges::iter_swap(x.current, y.current)));
19
  ```
20
 
21
+ Both `x.length > 0` and `y.length > 0` are `true`.
22
 
23
  *Effects:* Equivalent to `ranges::iter_swap(x.current, y.current)`.
24