错误输出:
error C2589: “(”: “::”右边的非法标记
error C2059: 语法错误 : “::”
错误原因
函数模板max与Visual C++中的全局的宏max冲突。
解决办法
第一种办法:
设置项目属性,在预定义处理器中添加定义NOMINMAX来禁止使用Vsual C++的min/max宏定义。
项目属性 ——> C/C++ ——> 预处理器 ——> 预处理器定义 (此处添加预定义编译开关 NOMINMAX)
第二种办法:
加上括号,与Vsual C++的min/max宏定义区分开
xx = std::max(v1,v2);
改为:
xx = (std::max)(v1,v2);
来源:oschina
链接:https://my.oschina.net/u/53273/blog/194834