
AMDG Steven Ross wrote:
There is one function necessary for users to be able to cast their own float types. Should it be in spreadsort.hpp or some separate header file? It seems silly to have a separate header file for it, but I guess it might be used on its own.
//Casts a float to the specified integer type template<class Data_type, class Cast_type> inline Cast_type float_mem_cast(const Data_type & data) { //Only cast IEEE floating-point numbers, and only to a same-sized integer BOOST_STATIC_ASSERT(sizeof(Cast_type) == sizeof(Data_type)); BOOST_STATIC_ASSERT(std::numeric_limits<Data_type>::is_iec559); BOOST_STATIC_ASSERT(std::numeric_limits<Cast_type>::is_integer); Cast_type result; std::memcpy(&result, &data, sizeof(Cast_type)); return result; }
Pu it in a detail namespace. If others need the same functionality, we can discuss generalizing it then. In Christ, Steven Watanabe