| Home | Libraries | People | FAQ | More

## Function template spreadsort

boost::sort::spreadsort::spreadsort — Generic `spreadsort` variant detecting float element type so call to `float_sort`.

## Synopsis

    // In header: <boost/sort/spreadsort/spreadsort.hpp>

    template<typename RandomAccessIter>
      boost::enable_if_c< !std::numeric_limits< typename std::iterator_traits< RandomAccessIter >::value_type >::is_integer &&std::numeric_limits< typename std::iterator_traits< RandomAccessIter >::value_type >::is_iec559, void >::type
      spreadsort(RandomAccessIter first, RandomAccessIter last);

## Description

If the data type provided is a float or castable-float, `float_sort` is used.

| Note
Sorting other data types requires picking between `integer_sort`, `float_sort` and `string_sort` directly, as `spreadsort` won't accept types that don't have the appropriate `type_traits`.

Parameters:

`first` | Iterator pointer to first element.
`last` | Iterator pointing to one beyond the end of data.

Requires: | [`first`, `last`) is a valid range.
Requires: | `RandomAccessIter` `value_type` is mutable.
Requires: | `RandomAccessIter` `value_type` is LessThanComparable
Requires: | `RandomAccessIter` `value_type` supports the `operator>>`, which returns an integer-type right-shifted a specified number of bits.
Postconditions: | The elements in the range [`first`, `last`) are sorted in ascending order.