1.8 KiB
[common.iter.cust]
24 Iterators library [iterators]
24.5 Iterator adaptors [predef.iterators]
24.5.5 Common iterators [iterators.common]
24.5.5.7 Customizations [common.iter.cust]
friend constexpr decltype(auto) iter_move(const common_iterator& i) noexcept(noexcept(ranges::iter_move(declval<const I&>()))) requires [input_iterator](iterator.concept.input#concept:input_iterator "24.3.4.9 Concept input_iterator [iterator.concept.input]")<I>;
Hardened preconditions: holds_alternative(i.v_) is true.
Effects: Equivalent to: return ranges::iter_move(get(i.v_));
template<[indirectly_swappable](alg.req.ind.swap#concept:indirectly_swappable "24.3.7.4 Concept indirectly_swappable [alg.req.ind.swap]")<I> I2, class S2> friend constexpr void iter_swap(const common_iterator& x, const common_iterator<I2, S2>& y) noexcept(noexcept(ranges::iter_swap(declval<const I&>(), declval<const I2&>())));
Hardened preconditions: holds_alternative(x.v_) and holds_alternative(y.v_) are each true.
Effects: Equivalent to ranges::iter_swap(get(x.v_), get(y.v_)).