[counted.iter.cust] (original) (raw)

23 Iterators library [iterators]

23.5 Iterator adaptors [predef.iterators]

23.5.6 Counted iterators [iterators.counted]

23.5.6.7 Customizations [counted.iter.cust]

friend constexpr iter_rvalue_reference_t<I> iter_move(const counted_iterator& i) noexcept(noexcept(ranges::iter_move(i.current))) requires [input_­iterator](iterator.concept.input#concept:input%5Fiterator "23.3.4.9 Concept input_­iterator [iterator.concept.input]")<I>;

Effects: Equivalent to: return ranges​::​iter_­move(i.current);

template<[indirectly_­swappable](alg.req.ind.swap#concept:indirectly%5Fswappable "23.3.7.4 Concept indirectly_­swappable [alg.req.ind.swap]")<I> I2> friend constexpr void iter_swap(const counted_iterator& x, const counted_iterator<I2>& y) noexcept(noexcept(ranges::iter_swap(x.current, y.current)));

Effects: Equivalent to ranges​::​iter_­swap(x.current, y.current).