Visual C ++ 2015中的std :: numeric_limits <double> :: epsilon()未定义

时间:2016-08-19 13:28:16

标签: c++

以下代码产生错误: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);
    }
};

2 个答案:

答案 0 :(得分:5)

numeric_limitslimits中声明,而不是limits.h,这是climits的C版本(顺便提一句,math.h是{C}版本{ {1}}):

cmath

答案 1 :(得分:4)

<limits.h>包含C标准库

中的宏类型限制

您需要<limits>才能使用C ++标准库函数。