The numeric_limits traits is supposed to be a general way of obtaining various type infomation, to be able to do things like
template T min(con
A workaround would be
double val = -std::numeric_limits<double>::max();
Of course, this doesn't explain the strange behaviour of numerics_limits::min() which could be a result of the fact that there are different min/max borders for integers (min = -2^n, max = 2^n-1) but not for doubles.