namespace boost {
namespace sort {
namespace spreadsort {
template<typename RandomAccessIter>
boost::enable_if_c< std::numeric_limits< typename std::iterator_traits< RandomAccessIter >::value_type >::is_integer, void >::type
spreadsort(RandomAccessIter, RandomAccessIter);
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, RandomAccessIter);
template<typename RandomAccessIter>
boost::enable_if_c< is_same< typename std::iterator_traits< RandomAccessIter >::value_type, typename std::string >::value, void >::type
spreadsort(RandomAccessIter, RandomAccessIter);
template<typename RandomAccessIter>
boost::enable_if_c< is_same< typename std::iterator_traits< RandomAccessIter >::value_type, typename std::wstring >::value &&sizeof(wchar_t)==2, void >::type
spreadsort(RandomAccessIter, RandomAccessIter);
template<typename Range> void spreadsort(Range &);
}
}
}