From Jason Turner

[range.enumerate.iterator]

Diff to HTML by rtfpessoa

tmp/tmplr4zdr5u/{from.md → to.md} RENAMED
@@ -60,11 +60,11 @@ namespace std::ranges {
60
  requires random_access_range<Base>;
61
  friend constexpr iterator operator+(difference_type x, const iterator& y)
62
  requires random_access_range<Base>;
63
  friend constexpr iterator operator-(const iterator& x, difference_type y)
64
  requires random_access_range<Base>;
65
- friend constexpr difference_type operator-(const iterator& x, const iterator& y);
66
 
67
  friend constexpr auto iter_move(const iterator& i)
68
  noexcept(noexcept(ranges::iter_move(i.current_)) &&
69
  is_nothrow_move_constructible_v<range_rvalue_reference_t<Base>>) {
70
  return tuple<difference_type,
@@ -242,10 +242,10 @@ auto temp = x;
242
  temp -= y;
243
  return temp;
244
  ```
245
 
246
  ``` cpp
247
- friend constexpr difference_type operator-(const iterator& x, const iterator& y);
248
  ```
249
 
250
  *Effects:* Equivalent to: `return x.`*`pos_`*` - y.`*`pos_`*`;`
251
 
 
60
  requires random_access_range<Base>;
61
  friend constexpr iterator operator+(difference_type x, const iterator& y)
62
  requires random_access_range<Base>;
63
  friend constexpr iterator operator-(const iterator& x, difference_type y)
64
  requires random_access_range<Base>;
65
+ friend constexpr difference_type operator-(const iterator& x, const iterator& y) noexcept;
66
 
67
  friend constexpr auto iter_move(const iterator& i)
68
  noexcept(noexcept(ranges::iter_move(i.current_)) &&
69
  is_nothrow_move_constructible_v<range_rvalue_reference_t<Base>>) {
70
  return tuple<difference_type,
 
242
  temp -= y;
243
  return temp;
244
  ```
245
 
246
  ``` cpp
247
+ friend constexpr difference_type operator-(const iterator& x, const iterator& y) noexcept;
248
  ```
249
 
250
  *Effects:* Equivalent to: `return x.`*`pos_`*` - y.`*`pos_`*`;`
251