tmp/tmpy8dh3mkz/{from.md → to.md}
RENAMED
|
@@ -64,11 +64,11 @@ namespace std {
|
|
| 64 |
template<sized_sentinel_for<I> I2, sized_sentinel_for<I> S2>
|
| 65 |
requires sized_sentinel_for<S, I2>
|
| 66 |
friend constexpr iter_difference_t<I2> operator-(
|
| 67 |
const common_iterator& x, const common_iterator<I2, S2>& y);
|
| 68 |
|
| 69 |
-
friend constexpr
|
| 70 |
noexcept(noexcept(ranges::iter_move(declval<const I&>())))
|
| 71 |
requires input_iterator<I>;
|
| 72 |
template<indirectly_swappable<I> I2, class S2>
|
| 73 |
friend constexpr void iter_swap(const common_iterator& x, const common_iterator<I2, S2>& y)
|
| 74 |
noexcept(noexcept(ranges::iter_swap(declval<const I&>(), declval<const I2&>())));
|
|
@@ -83,11 +83,11 @@ namespace std {
|
|
| 83 |
};
|
| 84 |
|
| 85 |
template<input_iterator I, class S>
|
| 86 |
struct iterator_traits<common_iterator<I, S>> {
|
| 87 |
using iterator_concept = see below;
|
| 88 |
-
using iterator_category = see below;
|
| 89 |
using value_type = iter_value_t<I>;
|
| 90 |
using difference_type = iter_difference_t<I>;
|
| 91 |
using pointer = see below;
|
| 92 |
using reference = iter_reference_t<I>;
|
| 93 |
};
|
|
|
|
| 64 |
template<sized_sentinel_for<I> I2, sized_sentinel_for<I> S2>
|
| 65 |
requires sized_sentinel_for<S, I2>
|
| 66 |
friend constexpr iter_difference_t<I2> operator-(
|
| 67 |
const common_iterator& x, const common_iterator<I2, S2>& y);
|
| 68 |
|
| 69 |
+
friend constexpr decltype(auto) iter_move(const common_iterator& i)
|
| 70 |
noexcept(noexcept(ranges::iter_move(declval<const I&>())))
|
| 71 |
requires input_iterator<I>;
|
| 72 |
template<indirectly_swappable<I> I2, class S2>
|
| 73 |
friend constexpr void iter_swap(const common_iterator& x, const common_iterator<I2, S2>& y)
|
| 74 |
noexcept(noexcept(ranges::iter_swap(declval<const I&>(), declval<const I2&>())));
|
|
|
|
| 83 |
};
|
| 84 |
|
| 85 |
template<input_iterator I, class S>
|
| 86 |
struct iterator_traits<common_iterator<I, S>> {
|
| 87 |
using iterator_concept = see below;
|
| 88 |
+
using iterator_category = see below; // not always present
|
| 89 |
using value_type = iter_value_t<I>;
|
| 90 |
using difference_type = iter_difference_t<I>;
|
| 91 |
using pointer = see below;
|
| 92 |
using reference = iter_reference_t<I>;
|
| 93 |
};
|