跳转到主要内容

在C++源代码中查找可能减慢大型代码库开发速度的问题。

项目描述

Build status

目标

cppclean试图在C++源代码中找到可能减慢大型代码库开发速度的问题,例如各种形式的未使用代码。未使用代码可以是未使用的函数、方法、数据成员、类型等,以及不必要的#include指令。不必要的#include指令可能导致编译次数大幅增加,从而增加编辑-编译-运行周期。

这是原始cppclean项目的分支。原始项目主页(不再包含代码)位于https://code.google.com/p/cppclean/

功能

cppclean可以找到以下内容

  • 具有虚拟方法但没有虚拟析构函数和基类的类

  • 在多线程中使用时可能成为问题的全局/静态数据

  • 已声明但未定义的函数

  • 不必要的类前向声明

  • 不必要的函数声明

  • 未声明的函数定义

  • 头文件中的不必要的#include
    • 未直接引用头文件中的任何内容

    • 如果类被前向声明,则头文件是不必要的

  • 在#include中不一致的大小写(foo.hFoo.h

  • (计划中)源文件中的不必要的#include

  • (计划中)引用未直接#include的头文件的源文件,即依赖于另一个头文件中传递性#include的文件

  • (计划中)未使用的成员(私有、受保护、公共)方法和数据

  • (计划中)头文件中的using namespace std

  • (计划中)已声明但未定义的方法

AST是抽象语法树,是解析源代码的表示(https://en.wikipedia.org/wiki/Abstract_syntax_tree)。

安装

$ pip install --upgrade cppclean

运行

$ cppclean <path>

可以指定多个包含路径

$ cppclean --include-path=directory1 --include-path=directory2 <path>

当前状态

该解析器对头文件处理得相当好,解析了大约99%的Google头文件。任何检查C++源文件结构的工具都应该能合理地工作。函数体没有转换为AST,而是保留为标记。

非目标

  • 解析所有有效的C++源代码

  • 优雅地处理无效的C++源代码

  • 编译成机器代码(或AST之外的内容)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

cppclean-0.13.tar.gz (31.1 kB 查看散列)

上传时间

支持