|
template<typename I1 , typename S1 , typename I2 > |
auto | operator() (I1 begin1, S1 end1, I2 begin2) const -> swap_ranges_result< I1, I2 > requires input_iterator< I1 > &&sentinel_for< S1, I1 > &&input_iterator< I2 > &&indirectly_swappable< I1, I2 > |
|
template<typename I1 , typename S1 , typename I2 , typename S2 > |
auto | operator() (I1 begin1, S1 end1, I2 begin2, S2 end2) const -> swap_ranges_result< I1, I2 > requires input_iterator< I1 > &&sentinel_for< S1, I1 > &&input_iterator< I2 > &&sentinel_for< S2, I2 > &&indirectly_swappable< I1, I2 > |
|
template<typename Rng1 , typename I2_ > |
auto | operator() (Rng1 &&rng1, I2_ &&begin2) const -> swap_ranges_result< iterator_t< Rng1 >, uncvref_t< I2_ >> requires input_range< Rng1 > &&input_iterator< uncvref_t< I2_ >> &&indirectly_swappable< iterator_t< Rng1 >, uncvref_t< I2_ >> |
|
template<typename Rng1 , typename Rng2 > |
auto | operator() (Rng1 &&rng1, Rng2 &&rng2) const -> swap_ranges_result< safe_iterator_t< Rng1 >, safe_iterator_t< Rng2 >> requires input_range< Rng1 > &&input_range< Rng2 > &&indirectly_swappable< iterator_t< Rng1 >, iterator_t< Rng2 >> |
|