why not `std::numeric_limits<double>`?