Files
2025-10-25 03:02:53 +03:00

1.7 KiB
Raw Permalink Blame History

[counted.iter.cust]

24 Iterators library [iterators]

24.5 Iterator adaptors [predef.iterators]

24.5.7 Counted iterators [iterators.counted]

24.5.7.7 Customizations [counted.iter.cust]

🔗

friend constexpr decltype(auto) iter_move(const counted_iterator& i) noexcept(noexcept(ranges::iter_move(i.current))) requires [input_iterator](iterator.concept.input#concept:input_iterator "24.3.4.9Concept input_­iterator[iterator.concept.input]")<I>;

1

#

Hardened preconditions: i.length > 0 is true.

2

#

Effects: Equivalent to: return ranges::iter_move(i.current);

🔗

template<[indirectly_swappable](alg.req.ind.swap#concept:indirectly_swappable "24.3.7.4Concept 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)));

3

#

Hardened preconditions: Both x.length > 0 and y.length > 0 are true.

4

#

Effects: Equivalent to ranges::iter_swap(x.current, y.current).