c++ 在临时变量上使用const引用

 

 gcc编译时报错如图:

错误分析:

map返回是是一个map::iterater类型的返回值,并不是引用,所以这个迭代器就是一个临时变量,然而我用一个auto&去引用一个临时变量就会出错,因为非const的话表示变量可修改,然而对一个临时变量进行修改操作是非法的,编译器会直接抛出警告。

正确写法:

const auto& it = map.find(enumType)

加上const表示不会对临时变量进行修改,所以编译器不会报错

 

posted @ 2020-12-27 01:32  寅鸷  阅读(345)  评论(0编辑  收藏  举报