有没有办法检查 C++ 中的最大方法长度?

Is there a way to check the maximum method length in C++?

我正在寻找一种工具,它可以检查我的 C++ 代码中是否有一个方法的行长度大于我可以定义的最大值。我想定义一个阈值,例如50 行,如果有一个函数,例如60行,工具分析后应该会提示我。

我知道 java 的 checkstyle 中有类似的功能。我们现在正在使用 Clang 格式来格式化我们的 C++ 代码,但我没有在 Clang 格式或任何其他 C++ 工具中找到类似的功能。

有人知道类似 C++ 的工具吗?非常感谢:)

我能想到的最简单的事情就是编写脚本。

使用例如 ctags 获取文件中的函数列表 使用 perl/python/awk/grep 将源文件拆分为单独的文件,每个函数一个文件 简单地统计每个文件的行数,取最大长度。如果您需要更多详细信息,请将每个文件输入 loc-counter,例如数到 获得更精细的信息。再次使用 grep 得到你感兴趣的输出 另一个可能有用的工具:

Lazy C++:是一个代码生成器,它将与 C++ 非常相似的文件拆分为头文件和源代码。如果您将代码转换为 lzz 文件,则生成的代码包括每个函数的行计数器标记。这些数字的差异将显示您的功能有多大

readability-function-size check of Clang-Tidy 完全符合您的要求(甚至更多)。