以下代码生成错误:std::numeric_limits<double>::epsilon()未定义的错误.
使用numeric_limits<double>::epsilon也会产生此错误.
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif // !_USE_MATH_DEFINES
#include <math.h>
#include <limits.h>
class plusCartesianPoly {
public:
static bool isClose(double a, double b)
{
if (fabs(a-b) <= std::numeric_limits::epsilon())
return true;
return(false);
}
};
Run Code Online (Sandbox Code Playgroud)
numeric_limits是声明的limits,而不是limits.hC版本climits(顺便说一下,math.h是C版本cmath):
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif // !_USE_MATH_DEFINES
#include <cmath>
#include <limits>
class plusCartesianPoly {
public:
static bool isClose(double a, double b)
{
if (std::fabs(a-b) <= std::numeric_limits<double>::epsilon())
return true;
return(false);
}
};
Run Code Online (Sandbox Code Playgroud)