Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::swap_ranges_fn Struct Reference

Public Member Functions

template<typename I1Ref , typename S1 , typename I2 , typename I1 = uncvref_t<I1Ref>, requires = (InputIterator<I1>() && Sentinel<S1, I1>() && InputIterator<I2>() && IndirectlySwappable<I1, I2>())>
tagged_pair< tag::in1(I1), tag::in2(I2)> operator() (I1Ref &&begin1, S1 end1, I2 begin2) const
 
template<typename I1 , typename S1 , typename I2 , typename S2 , requires = (InputIterator<I1>() && Sentinel<S1, I1>() && InputIterator<I2>() && Sentinel<S2, I2>() && IndirectlySwappable<I1, I2>())>
tagged_pair< tag::in1(I1), tag::in2(I2)> operator() (I1 begin1, S1 end1, I2 begin2, S2 end2) const
 
template<typename Rng1 , typename I2 , typename I1 = range_iterator_t<Rng1>, requires = (InputRange<Rng1>() && InputIterator<I2>() && IndirectlySwappable<I1, I2>())>
tagged_pair< tag::in1(I1), tag::in2(I2)> operator() (Rng1 &rng1, I2 begin2) const
 
template<typename Rng1 , typename Rng2 , typename I1 = range_iterator_t<Rng1>, typename I2 = range_iterator_t<Rng2>, requires = (InputRange<Rng1>() && InputRange<Rng2>() && IndirectlySwappable<I1, I2>())>
tagged_pair< tag::in1(range_safe_iterator_t< Rng1 >), tag::in2(range_safe_iterator_t< Rng2 >)> operator() (Rng1 &&rng1, Rng2 &&rng2) const