Range-v3
Range algorithms, views, and actions for the Standard Library
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)