C ++ min函数与标量值的比较

时间:2017-10-23 07:25:30

标签: c++

我有if这样的声明。

typedef float Scalar;

// ...

if ( someScalarValue > std::numeric_limits<Scalar>::min() )
{
...
}

这会产生错误:

  

E0040需要一个标识符

可能是因为min要求值。

但我在应用程序中有其他人的代码,这不会产生错误。为什么这个if语句甚至可以起作用?以及如何使它适合我?

1 个答案:

答案 0 :(得分:0)

可能你在MSVC上编译了这个。 windows.h定义了maxmin,因此会中断std::numeric_limits。在使用#define NOMINMAX或全局之前尝试添加windows.h,或在使用#undef min之前添加numeric_limits

此外,Scalar必须是数字类型(如typedef unsigned Scalar