【问题标题】:C++: static analysis for const?C++:const 的静态分析?
【发布时间】:2020-09-26 07:40:18
【问题描述】:

我知道有很多可用于 c++ 的静态分析工具。但是,在谷歌搜索时,我找不到一个似乎能够警告可能已标记为 const 但不是的值和函数。

所以特别是如果我有这样的功能:

int add(int a, const int b) {
    int result = a + b;
    return result;
}

我希望该工具就变量 aresult 向我发出警告(或发出错误),这两个变量本来可以标记为 const,但没有。
此外,如果add 是一个成员函数,我还想被警告它没有被声明为`const。

因此,对于一个人来说,我想要一个工具来帮助我强制执行 const 正确性,如果可能的话,它应该超越它,并且应该让我在我的代码当前允许的每一种情况下都使用 const

是否有可以为 c++ 执行此操作的工具?或者这甚至是一个编译器选项,例如clang 好像找不到?

我在想,如果还没有可用的工具,也许这可以用clang-tidy 来完成......

【问题讨论】:

  • 如果回答“是”或“否”,你会怎么做?
  • 是的,有这样的工具。询问哪些工具不是on-topic
  • 我认为您可以配置 CLion 来执行此操作。
  • 我猜你可以写一个clang-tidy检查来做到这一点。
  • 似乎 clang-tidy 已经可以做到这一点:clang.llvm.org/extra/clang-tidy/checks/…

标签: c++ static-analysis


【解决方案1】:

Resharper-C++ for VisualStudio 确实对此发出警告(它不是免费的)。我不确定他们在幕后使用了什么。它可能只是整洁。

【讨论】:

猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 2010-11-11
  • 2014-04-28
  • 2015-06-07
  • 2012-07-05
  • 1970-01-01
  • 2012-06-23
  • 2011-12-01
相关资源
最近更新 更多