我有if这样的声明。
typedef float Scalar;
// ...
if ( someScalarValue > std::numeric_limits<Scalar>::min() )
{
...
}
这会产生错误:
E0040需要一个标识符
可能是因为min要求值。
但我在应用程序中有其他人的代码,这不会产生错误。为什么这个if语句甚至可以起作用?以及如何使它适合我?
答案 0 :(得分:0)
可能你在MSVC上编译了这个。 windows.h
定义了max
和min
,因此会中断std::numeric_limits
。在使用#define NOMINMAX
或全局之前尝试添加windows.h
,或在使用#undef min
之前添加numeric_limits
。
此外,Scalar
必须是数字类型(如typedef unsigned Scalar
)