passing as 'this' argument discards qualifier

1、问题描述

有这样一个函数

void setInfo(const std::map<std::string,std::string>& config)
{
  std::string a = config["aaa"];
}

2、编译现象

如标题

3、解释

config变量是一个const的,但是在内部函数里调用了这个变量的符号重载函数"[ ]",而我们规定const是不能被修改,但是调用这个函数就有被修改的风险,故编译报错

4、解决

可以在函数后面加一个const,或者把config前面的const去掉




长风破浪会有时,直挂云帆济沧海!
可通过下方链接找到博主
https://www.cnblogs.com/judes/p/10875138.html
原文地址:https://www.cnblogs.com/judes/p/13712349.html