我对 C++ 的基础知识相当熟悉,但缺乏经验(主要是 Java 代码),所以稍微“笨拙”的回复将不胜感激:)
我正在扩展一个更大的开源项目,它使用标准的 Visual Studio 类limits.h,其中可以找到以下代码:
template<> class numeric_limits<double>
: public _Num_float_base
{ // limits for type double
public:
typedef double _Ty;
static _Ty (max)() _THROW0()
{ // return maximum value
return (DBL_MAX);
}
我现在导入了另一个开源项目,它使用了 minwindef.h,其中包含以下代码:
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
构建现在中断,因为对于这条线
SUMOReal distance = std::numeric_limits<SUMOReal>::max();
编译器抱怨在没有任何参数的情况下使用 max()。有什么快速的方法可以解决这个问题,或者我可以不使用我导入的库吗?:/
希望这足够清楚,感谢您的任何建议!