template <class I1, class I2>
requires EqualityComparableWith<I1, I2>
constexpr bool operator==(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return x.current == y.current;
template <class I1, class I2>
requires EqualityComparableWith<I1, I2>
constexpr bool operator!=(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return !(x == y);
template <class I1, class I2>
requires StrictTotallyOrderedWith<I1, I2>
constexpr bool operator<(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return x.current < y.current;
template <class I1, class I2>
requires StrictTotallyOrderedWith<I1, I2>
constexpr bool operator<=(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return !(y < x);
template <class I1, class I2>
requires StrictTotallyOrderedWith<I1, I2>
constexpr bool operator>(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return y < x;
template <class I1, class I2>
requires StrictTotallyOrderedWith<I1, I2>
constexpr bool operator>=(
const move_iterator<I1>& x, const move_iterator<I2>& y);
Effects: Equivalent to: return !(x < y);.