Hello,
at this time I play with numeric_cast and struggle with this:
first:
double z = std::numeric_limits<double>::max();
z += 2*std::numeric_limits<double>::epsilon(); // doesn't matter if 1*eps
std::cout << z << std::endl;
std::cout << boost::numeric_cast<double>(z) << '\n';
I would expect that an exception is thrown which isn't, the output is
1.79769e+308
1.79769e+308