C++的自动代码风格指南测试

automatic code-style-guide test for C++

本文关键字:测试 风格 代码 C++      更新时间:2023-10-16

可能的重复项:
一个根据一组编码标准检查 C/C++ 源代码的免费工具?

我正在启动一个 c++ 项目,涉及几个我无法直接访问的人。我们商定了一个编码风格指南,例如,根据可访问性(即帕斯卡情况下的私人,骆驼情况下的公共和受保护者)定义类成员的大小写。请不要开始讨论风格指南。我受够了。谢谢。

我现在想做的是生成一些违反风格指南的报告。我不想强制执行风格指南,例如在提交时,但我想提供一个工具,每个开发人员都可以使用它来查看他/她的代码在哪里违反了风格指南(如果他/她想检查它)。

你知道一个可以完成这项工作的工具吗?

(它需要能够理解一些C++,例如检测类成员的可访问性。

好吧,你可以在提交时通过 AStyle 或 Uncrustify 运行你的代码,这至少会将错误代码重新格式化为某种标准。我发现这是代码提交和标准的大多数问题 - 如果您在提交后重新格式化,它会显示为许多完全微不足道的增量更改。

否则,请检查其他 SO 答案。

风格指南往往是特定于公司的,并且必须编写特定于公司的检查才能实现它们。

我的公司提供可自定义的C++样式检查器,其中可以通过语法检查已弃用的习语,检查变量和类型是否具有某些属性,或验证某些命令是否在本地以特定顺序出现。 这些检查器在源代码上使用C++方言精确解析器。 定制并不容易;您需要底层引擎和一些解析C++程序的知识。

可以

编写检查布局的规则,但这是很多没有回报的工作,解决此类投诉并不是对程序员资源恕我直言的有效使用。 如果你不打算强制执行你的风格,你为什么要用抱怨来惹恼程序员呢? IT似乎更容易(正如另一张海报所指出的)简单地运行一个布局格式化程序,该格式化程序可以免费产生正确的结果,而程序员可以不花钱。

通用格式化程序的问题之一是语言不精确,它们可能会误解源代码,有时会在格式化时破坏源代码,从而导致编译错误、调试和浪费时间。 我们还提供C++格式化程序,以使用与样式检查器相同的语言精确解析器完成格式化;它们无法在重新格式化期间破坏您的代码。

我已经成功地使用 vera++ 工具为我们的项目执行此操作。我写了一些规则(在TCL中)来采用我们公司的风格指南。这有点痛苦,直到我解决了检查中报告的所有误报。至少它现在运行良好,我已经将报告集成到 Jenkins 构建分析中。

这些报告还可以轻松地用于 Eclipse IDE 中的定制错误分析。