前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【错误记录】set 集合容器仿函数报错 ( 具有类型“const IntCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool IntCompare::oper“ )

【错误记录】set 集合容器仿函数报错 ( 具有类型“const IntCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool IntCompare::oper“ )

作者头像
韩曙亮
发布2023-12-29 09:57:02
1460
发布2023-12-29 09:57:02
举报
文章目录
  • 一、报错信息
  • 二、问题分析
  • 三、解决方案

一、报错信息


使用 仿函数 为 set 集合容器 定义 元素排序规则 ;

仿函数 functor 是一个在许多编程语言中都存在的概念 , 它通常指一个对象 , 该对象能像函数那样被调用 ; 具体来说 , 仿函数是一个类 , 该类重载了operator() 函数 , 使其可以像函数那样被调用 , 这种类通常被称为仿函数类或函数对象 ;

在 C++ 语言中 , 仿函数可以用来实现高阶函数 , 即接受函数作为参数或返回函数的函数 ; 例如 : C++ 标准库中的 std::less / std::plus 等都是仿函数类 ;

定义如下仿函数 IntCompare

如果调用 set 集合的 insert 函数 , 就会报错 ;

完整代码如下 :

上述程序报错信息如下 :

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型“const IntCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool IntCompare::operator ()(const int &,const int &)” HelloWorld D:\001_Develop\017_Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xutility 1516

二、问题分析


const 和 volatile 是 C++ 中的两个关键字 , 它们通常用于修饰变量或函数 ;

这两个限定符的作用和用途不同 , 但在某些情况下可以一起使用 ;

const 关键字用于表明某个变量的值不能被修改 ; 它可以修饰变量、指针、数组等 ;

volatile 关键字告诉编译器这个变量可能会在任何时刻被外部因素(如操作系统或其他进程)改变 ; 因此,编译器不会对该变量进行优化 ;

当 const 和 volatile 一起使用时 , const-volatile 限定符 , 它们表示这个变量是常量并且可能会被外部因素改变 ;

报错信息中说明 , 调用 bool IntCompare::operator ()(const int &,const int &) 函数时 , 可能会丢失 const-volatile 限定符 ;

使用 const volatile 修饰这个函数 ;

修改后的仿函数如下 :

三、解决方案


使用 const volatile 修饰 bool operator()(const int& a, const int& b) 函数 ;

修改后的代码为 :

完整代码为 :

执行结果 :

2 5 7 9 Press any key to continue . . .

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、报错信息
  • 二、问题分析
  • 三、解决方案
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档