Use detail::reverse_value() to implement reverse_value() for float and double, thus eliminating type-punning warning from gcc.