1. 错误输出
1>d:\system\vcpkg\installed\x64-windows\include\osgearth\math(216): error C2589: ‘(‘: illegal token on right side of ‘::‘
2. 错误代码举例
result.xMin() = std::min(result.xMin(), (*itr).x());
3. 错误原因
Vsual C++定义了min/max两个宏,这里被认为冲突。
4. 解决方案
- 设置项目属性
在预定义处理器中添加定义NOMINMAX来禁止使用Vsual C++的min/max宏定义:项目属性 -> C/C++ -> 预处理器 -> 预处理器定义中添加NOMINMAX。
- 加括号
加上括号,与Vsual C++的min/max宏定义区分开
result.xMin() = (std::min)(result.xMin(), (*itr).x());