
on 04.05.2010 at 15:44 Stewart, Robert wrote :
DE wrote:
Stewart, Robert wrote :
Frank Mori Hess wrote:
Speaking of numeric_limits, anyone know why they defined numeric_limits::min() to mean something completely different for floating and integer types?
numeric_limits<double>::min is: 2.22507e-308 numeric_limits<int>::min is: -2147483648
That is a pain, isn't it? I can only assume it was to avoid adding yet more attributes. (You'd need biggest, smallest, maximum, and minimum, or some such set to express everything.) Floating point types don't have asymmetrical ranges like integral types.
not that much
typedef std::numeric_limits<type> traits; const type realy_min = traits::is_integer ? traits::min() : -traits::max();
That only works for unsigned types.
it does work for bounded signed and unsigned integers, unbounded unsigned integers and also for floating point values (with denormalization) so no, not that much -- Pavel P.S. if you notice a grammar mistake or weird phrasing in my message please point it out