首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有良好C++11特性的多平台项目静态代码分析工具

具有良好C++11特性的多平台项目静态代码分析工具
EN

Software Recommendation用户
提问于 2016-01-01 19:34:44
回答 2查看 267关注 0票数 9

我是一个老学校的C++开发人员,甚至今天我也没有专业的C++11经验。我相信C++委员会的语言正朝着正确的方向发展,但在我从事的项目中,怀疑主义似乎占主导地位,许多C++11特性甚至在人们理解和探索之前就被禁止了。

无论如何,我现在有机会在一个新的代码基础上工作,我想应用所有的C++11功能,但我不想开枪打死我自己。

在过去,我发现一些静态代码分析工具是非常强大的教学工具,可以向我展示语言的所有微妙方面。

在我的项目中,我使用了STL助推等可移植库,它们构建在Windows、Linux等基础上。

我希望咯咯-整齐clang-现代化等能成为一个很好的工具,让我调整我的行为以适应C++11特性,但它们提供的帮助似乎非常有限--我花了2-3天才适应他们所做的所有建议……例如,我确信,基于rvalue引用,我遗漏了很多可能性。

我希望它有一些特性:

  • 当拷贝省略不够时,转发接口将提供优化。
  • 当某些类成员不是可移动的和自动生成的移动构造函数和移动赋值操作符时,则不可能。
  • 如果这是局部变量作用域中的最后一个引用,则可以移动局部变量。
  • const auto&优于auto时。

我没有限价。

EN

回答 2

Software Recommendation用户

发布于 2016-01-05 18:06:10

在过去,对于旧的C/C++代码,我使用的是PC棉,这是一个由Gimpel软件开发的商业软件。

公司实际上开发了几个静态分析工具:PC-lint和FlexeLint

Pc-lint适用于Windows系统,而FlexeLint运行在几乎所有支持C的系统上,包括VMS、OS-9和几乎所有Unix系统。

PC-lint和FlexeLint是强大的静态分析工具,可以检查C/C++源代码,发现错误、故障、不一致、不可移植的构造、冗余代码等等。它跨越多个模块,因此,享受编译器没有的透视图。

关于C++11支持,他们有一个专门的页面:

PC-lint / FlexeLint对C++ 11的支持

对C++11和C++1y的全面支持是我们的主要关注点,虽然我们不能提供全面支持的日期,但我们预计在推出对其余功能的支持时,发布周期会更快。

因此,在编写本报告时,它们并不支持所有的C++11特性,但它们中的大多数似乎都支持。我喜欢的是,这些特性的开发状态在页面上得到了清晰、透明的报告,以及优先级(对于其他工具来说,这些信息似乎并不清楚或容易获得)。

例如,在您的问题中,您提到了rvalue,它似乎得到了支持:

  • 语言特性: Rvalue引用
  • C++11提案:N2118
  • 可用n Lint /FlexeLint?:Lint 9.00c

根据您可以在网站和页面上找到的信息、所涉及的成本和您的项目,您可以评估它是否是一个能够满足您的需求的工具。其他人可能知道其他工具,这是我建议你看看的。

最后,可以在维基百科上找到用于C/C++静态代码分析的其他工具列表。他们并不都支持C++11。

票数 2
EN

Software Recommendation用户

发布于 2016-01-13 10:29:55

您可以尝试使用CppDepend,这是一个非常完整的静态分析工具,它集成了广泛的特性,并且100%集成到Visual。

票数 2
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/27678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档