栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【min()函数和max()函数冲突,不可使用,解决办法】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【min()函数和max()函数冲突,不可使用,解决办法】

       

目录

       

使用VS2010编写的C++程序 std:min 转换到 VS2013无法识别,显示“错误:应输入标识符”。

解决方法:


使用VS2010编写的C++程序 std:min 转换到 VS2013无法识别,显示“错误:应输入标识符”。

       标准库在头中定义了两个模板函数std::min() 和 std::max()。通常用它可以计算某个值对应的最小值和最大值。可惜在 Visual C++ 无法使用它们,因为没有定义这些函数模板。原因是名字min和max与中传统的min/max宏定义有冲突。

解决方法:

       1、_cpp_min() 和 _cpp_max()

        为了解决这个问题,Visual C++ 定义了另外两个功能相同的模板:_cpp_min() 和 _cpp_max()。我们可以用它们来代替std::min() 和 std::max()。

      2、可以禁用Visual C++中的 min/max宏定义

        可以在包含头文件之前加上:

        #define NOMINMAX

        或者将 NOMINMAX 加到 preprocessor difinitions 中。

        具体方法是:

                项目属性—配置属性—C/C+±–预处理器中添加“NOMINMAX”

        3、在std::max外加上括号,阻止宏替换,即(std::max)()。

三种方法任选其一即可,2、3亲测可用,第一种还没有尝试过。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/954261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号