VS c++ error C2589:“(“:“::“ 右边的非法标记错误处理

编程入门 行业动态 更新时间:2024-10-27 08:32:04

VS c++ error C2589:“(“:“::“ 右边的非法<a href=https://www.elefans.com/category/jswz/34/1771422.html style=标记错误处理"/>

VS c++ error C2589:“(“:“::“ 右边的非法标记错误处理

在使用windows VS2019 使用tensorrt部署yolov5时,

size.Width = std::max(size.Width, elementSize.Width);

提示了

error C2589:“(”:“::” 右边的非法标记错误处理

错误;
找到这个问的原因是:模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现真正的代码可用性。模板可以分为两类,一个是函数模板,一个是类模板。
函数模板和全局宏冲突。
解决办法
方法一、设置项目属性,在预定义处理器中添加NOMINMAX来禁止使用Visual C++的min/max宏定义

项目属性 》c/c++》预处理器====》预处理器定义(此处添加预定义编译开关NOMINMAX)

但是visual C++中定义能自动匹配double和int,如果进行了上述设置,代码中手动将int型的数据乘以1.0来达到double的目的。
方法二、加上括号,与Vsual C++ 的min/max宏定义区分开

size.Width = std::max(size.Width, elementSize.Width);

修改为:

size.Width = (std::max)(size.Width, elementSize.Width);

更多推荐

VS c++ error C2589:“(“:“::“ 右边的非法标记错误处理

本文发布于:2024-02-17 05:06:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1692760.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:标记   错误   error

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!