C++ 如何解决lint错误;引用初始化会导致常量/易失性完整性丢失”;

C++ 如何解决lint错误;引用初始化会导致常量/易失性完整性丢失”;,c++,c++11,c++14,pc-lint,C++,C++11,C++14,Pc Lint,PC lint给我以下错误: error 1561: (Warning -- Reference initialization causes loss of const/volatile integrity (arg. 'this')) 处理此代码的最后一行时: auto sortedIter = std::find( _sortedSelectedItems.begin(), _sortedSelectedItems.end(), i ); if ( sortedIter != _sorte

PC lint给我以下错误:

error 1561: (Warning -- Reference initialization causes loss of const/volatile integrity (arg. 'this'))
处理此代码的最后一行时:

auto sortedIter = std::find( _sortedSelectedItems.begin(), _sortedSelectedItems.end(), i );
if ( sortedIter != _sortedSelectedItems.end() )
            _sortedSelectedItems.erase(sortedIter); // here the lint issue appears
其中
\u sortedSelectedItems
std::vector
知道为什么会出现此错误以及如何修复它吗

编辑


此代码不在常量成员函数中。

因为您在标记为
常量的函数中修改类成员


既然你更新了你的帖子,我们就转到关于你不完整的代码片段的下一个问题:_sortedSelectedItems是如何定义的。

因为你正在修改一个类成员,而你在一个标有
const
的函数中


既然你更新了你的帖子,我们就转到关于你不完整的代码片段的下一个问题:_sortedSelectedItems是如何定义的。

我所使用的函数不是常量。你能提供一个吗?试着用实际的类型替换
auto
。@dyp是的,但我现在不能这样做,因为我没有访问代码的权限,我明天必须做这件事。但基本上,这个函数没有什么特别之处。只是我的类的一个普通成员函数。@ThomasMatthews抱歉,我必须等到明天才能尝试您的建议。@ThomasMatthews我用迭代器替换了auto一次,用const_迭代器替换了另一次,两次lint错误都持续存在。今天我和一些经验丰富的同事讨论了这个错误,他们说他们找不到一个好的解释来解释为什么会发生这个错误。他们中的许多人说,他们只是抑制了它,因为lint错误不是100%准确。你能提供一个吗?尝试用实际类型替换
auto
。@dyp是的,但我现在不能这样做,因为我没有访问代码的权限,明天必须这样做。但基本上,这个函数没有什么特别之处。只是我的类的一个普通成员函数。@ThomasMatthews抱歉,我必须等到明天才能尝试您的建议。@ThomasMatthews我用迭代器替换了auto一次,用const_迭代器替换了另一次,两次lint错误都持续存在。今天我和一些经验丰富的同事讨论了这个错误,他们说他们找不到一个好的解释来解释为什么会发生这个错误。他们中的许多人说,他们只是抑制了它,因为皮棉误差不是100%准确。