17 #ifndef BOOST_SORT_SPREADSORT_HPP
18 #define BOOST_SORT_SPREADSORT_HPP
24 #include <boost/type_traits.hpp>
53 template <
class RandomAccessIter>
54 inline typename boost::enable_if_c< std::numeric_limits<
55 typename std::iterator_traits<RandomAccessIter>::value_type >::is_integer,
57 spreadsort(RandomAccessIter first, RandomAccessIter last)
80 template <
class RandomAccessIter>
81 inline typename boost::enable_if_c< !std::numeric_limits<
82 typename std::iterator_traits<RandomAccessIter>::value_type >::is_integer
83 && std::numeric_limits<
84 typename std::iterator_traits<RandomAccessIter>::value_type >::is_iec559,
86 spreadsort(RandomAccessIter first, RandomAccessIter last)
109 template <
class RandomAccessIter>
110 inline typename boost::enable_if_c<
111 is_same<typename std::iterator_traits<RandomAccessIter>::value_type,
112 typename std::string>::value ||
113 is_same<typename std::iterator_traits<RandomAccessIter>::value_type,
114 typename std::wstring>::value,
void >::type
void integer_sort(RandomAccessIter first, RandomAccessIter last)
Integer sort algorithm using random access iterators. (All variants fall back to std::sort if the dat...
Definition: integer_sort.hpp:75
Definition: float_sort.hpp:27
boost::enable_if_c< std::numeric_limits< typename std::iterator_traits< RandomAccessIter >::value_type >::is_integer, void >::type spreadsort(RandomAccessIter first, RandomAccessIter last)
Generic spreadsort variant detecting integer-type elements so call to integer_sort.
Definition: spreadsort.hpp:57
void string_sort(RandomAccessIter first, RandomAccessIter last, Unsigned_char_type unused)
String sort algorithm using random access iterators, allowing character-type overloads. (All variants fall back to std::sort if the data size is too small, < detail::min_sort_size).
Definition: string_sort.hpp:73
void float_sort(RandomAccessIter first, RandomAccessIter last)
float_sort with casting to the appropriate size.
Definition: float_sort.hpp:86