std::min/max 与 NOMINMAX 的歧义
尝试利用 std::min 和 std::max 函数在一个集成 Windows.h 的 C 项目中,您引入了 NOMINMAX 指令以避免潜在的名称冲突。但是,当您尝试在不直接使用 NOMINMAX 的文件中访问这些函数时,您会遇到障碍。
要解决此问题,Microsoft 建议采用非正统的解决方案:
将函数名称括起来
在缺少 NOMINMAX 指令的文件中,将std::min 和 std::max 函数名称带有括号。这种语法 (std::min)(x, y) 和 (std::max)(x, y) 可防止编译器将它们解释为类似函数的宏,这可能会干扰您的意图。
需要注意的是,这个解决方案并不理想,只能被视为最后的手段。正确的方法是确保在您打算使用 std::min 和 std::max 的所有文件中定义 NOMINMAX,从而允许编译器一致地解决它们的歧义。
以上是使用 NOMINMAX 时是否应该将 std::min 和 std::max 括起来?的详细内容。更多信息请关注PHP中文网其他相关文章!