这是Qt Creator分析器中的错误吗?

时间:2019-05-12 09:19:20

标签: c++11 qt-creator stdmap auto stdset

使用某些代码时,我遇到了QT Creator性能下降的情况。实际上,它会在一个无限循环中启动一个占用100%CPU的线程:即使关闭IDE进程而不杀死它也变得不可能。这在我的机器上是完全可复制的。在提交错误之前,我希望得到其他用户的确认,并希望收集有关QT Creator,OS,编译器,STL等版本的统计信息。代码需要C ++ 11和更高版本。

经过一番调查,我将代码缩减为可重现该问题的最短示例(不要看代码的共性,问题在于IDE如何对待它):

#include <set>
int main() {
    std::set<int> s;
    auto iter = s.insert(1).first;
    iter->second;
    return 0;
}

亮点:

  • 自动很重要
  • 可以使用地图而不是 set
  • 重现相同的行为
  • 插入很重要,因为它返回的不是简单的迭代器,而是对
  • iter-> second 行在语法上是不正确的,但这并不重要(您可以使用 std :: set 使其正确)。问题在于,无论它是什么意思,IDE都会在 iter-> 之后崩溃。

我的配置是:基于Qt 5.5.1(MSVC 2013,32位)的QT Creator 3.5.1; Windows 10。

1 个答案:

答案 0 :(得分:2)

自Qt Creator 3.5以来发生了很多事情。代码模型是基于Clang的全新模型。因此,我无法使用Qt Creator 4.9重现您的问题。 (是的,旧的代码模型有一些限制和错误。)

通常,在准备错误报告之前,请始终确保您拥有该软件的最新支持版本。