问题:error C2589: “(”:“::”右边的非法标记错误的处理

标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max(),通常用它可以计算某个值对的最小值和最大值。而在Visual C++ 使用会发生名字min和max与<windows.h>中传统的min/max宏定义有冲突的现象。

可以用如下方法解决(vs2010中解决):

打开工程属性->C/C++->预处理器->预处理器定义->加入NOMINMAX。

可以解决如上所遇问题,再次编译工程通过。

注意:

在报错文件中直接添加#define NOMINMAX不起作用。需要在工程属性->C/C++->预处理器->预处理器定义->加入NOMINMA,才起作用。