Loading...
Searching...
No Matches
swap_ranges.hpp File Reference

## Typedefs

template<typename I1 , typename I2 >
using | ranges::swap_ranges_result = detail::in1_in2_result< I1, I2 >

## Functions

template<typename I1 , typename S1 , typename I2 > requires input_iterator<I1> && sentinel_for<S1, I1> && input_iterator<I2> && indirectly_swappable<I1, I2>
constexpr swap_ranges_result< I1, I2 > | ranges::swap_ranges (I1 begin1, S1 end1, I2 begin2)
| function template `swap_ranges`
template<typename I1 , typename S1 , typename I2 , typename S2 > requires input_iterator<I1> && sentinel_for<S1, I1> && input_iterator<I2> && sentinel_for<S2, I2> && indirectly_swappable<I1, I2>
constexpr swap_ranges_result< I1, I2 > | ranges::swap_ranges (I1 begin1, S1 end1, I2 begin2, S2 end2)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<typename Rng1 , typename I2_ > requires input_range<Rng1> && input_iterator<uncvref_t<I2_>> && indirectly_swappable<iterator_t<Rng1>, uncvref_t<I2_>>
constexpr swap_ranges_result< iterator_t< Rng1 >, uncvref_t< I2_ > > | ranges::swap_ranges (Rng1 &&rng1, I2_ &&begin2)
template<typename Rng1 , typename Rng2 > requires input_range<Rng1> && input_range<Rng2> && indirectly_swappable<iterator_t<Rng1>, iterator_t<Rng2>>
constexpr swap_ranges_result< borrowed_iterator_t< Rng1 >, borrowed_iterator_t< Rng2 > > | ranges::swap_ranges (Rng1 &&rng1, Rng2 &&rng2)