5 #ifndef VCCC_ALGORITHM_RANGES_SWAP_RANGES_HPP 
    6 #define VCCC_ALGORITHM_RANGES_SWAP_RANGES_HPP 
   25 template< 
class I1, 
class I2 >
 
   30 struct swap_ranges_niebloid {
 
   31   template<
typename I1, 
typename S1, 
typename I2, 
typename S2, std::enable_if_t<
conjunction<
 
   37     for (; !(first1 == last1 || first2 == last2); ++first1, ++first2)
 
   39     return {std::move(first1), std::move(first2)};
 
   42   template<
typename R1, 
typename R2, std::enable_if_t<
conjunction<
 
   47   constexpr 
void operator()(R1&& r1, R2&& r2)
 const {
 
constexpr VCCC_INLINE_OR_STATIC detail::swap_ranges_niebloid swap_ranges
Definition: swap_ranges.hpp:54
constexpr VCCC_INLINE_OR_STATIC detail_iter_swap::iter_swap_niebloid iter_swap
Definition: iter_swap.hpp:90
typename ranges::iterator< T >::type iterator_t
Definition: iterator_t.hpp:32
constexpr VCCC_INLINE_OR_STATIC detail::begin_niebloid begin
returns an iterator to the beginning of a range
Definition: begin.hpp:116
constexpr VCCC_INLINE_OR_STATIC detail::end_niebloid end
returns a sentinel indicating the end of a range
Definition: end.hpp:120
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: conjunction.hpp:22
Definition: indirectly_swappable.hpp:46
Definition: in_in_result.hpp:22
Definition: sentinel_for.hpp:24