Error: “Wrapper object use after free (WRAPPER_ESCAPE)”

Error: “Wrapper object use after free (WRAPPER_ESCAPE)”

...
Object& a = list.front();
list.pop_front();
...

完成上述操作后我需要使用&a。但是coverity是提高免费发行后的使用率。在执行 pop_front() 后使用 &a 有问题吗?

Object& a = list.front();

您使 a reference 成为列表的最前面的元素。当您稍后弹出前面的元素时,它会被破坏,留下对不存在对象的引用。

您应该 复制 元素

Object a = list.front();

或者可能移动

Object a = std::move(list.front());