下面这段代码:
Index i2 = std::min(0 + slice, loop_size);
编译会出现这样的错误:
1> error C2059: 语法错误:“::”
1> error C2589: “(”:“::”右边的非法标记
解决办法
方法一:将std::min
用括号括起来,问题解决;
Index i2 = (std::min)(0 + slice, loop_size);
方法二:在此文件的头部添加宏定义,问题解决;
#define NOMINMAX
方法三:设置项目属性,在预定义处理器中添加定义NOMINMAX来禁止使用Vsual C++的min/max宏定义。
项目属性 ——> C/C++ ——> 预处理器 ——> 预处理器定义 (此处添加预定义编译开关 NOMINMAX)
参考网站:
Problem calling std::max