首页 > 后端开发 > C++ > 正文

使用 NOMINMAX 时是否应该将 std::min 和 std::max 括起来?

DDD
发布: 2024-11-09 17:10:02
原创
1007 人浏览过

Should I Parenthesize std::min and std::max When Using NOMINMAX?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板