【C++编程语言】严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3848 具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool

  • Post author:
  • Post category:其他




问题描述:把set容器的内置排序算法改变时,使用仿函数 但是出现了一下错误



修改前

//set容器排序
class MyCompare {
public:
	bool operator()( int v1,  int v2) {
		return v1 > v2;
	}
};

void test01() {
	//指定排序规则为从大到小
	set<int,MyCompare> s2;

	//插入数据
	s2.insert(40);
	s2.insert(50);
	s2.insert(20);
	s2.insert(10);
	for (set<int, MyCompare>::iterator it = s2.begin(); it != s2.end(); it++) {
		cout << *it << endl;
	}
}
int main() {
	test01();
	system("pause");
	return 0;
}


以上代码出现一下错


严重性 代码 说明 项目 文件 行 禁止显示状态

错误 C3848 具有类型“const MyCompare”的表达式会丢失一些 const-volatile 限定符以调用“bool

MyCompare::operator ()(int,int)” Project02 E:\develop\visual studio\visual

studio\VC\Tools\MSVC\14.32.31326\include\xutility 1451



修改后 加const

class MyCompare {
public:
	bool operator()( int v1,  int v2) const{//在这里加const
		return v1 > v2;
	}
};



版权声明:本文为kaszxc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。