在C++源代码中查找可能减慢大型代码库开发速度的问题。
项目描述
目标
cppclean试图在C++源代码中找到可能减慢大型代码库开发速度的问题,例如各种形式的未使用代码。未使用代码可以是未使用的函数、方法、数据成员、类型等,以及不必要的#include指令。不必要的#include指令可能导致编译次数大幅增加,从而增加编辑-编译-运行周期。
这是原始cppclean项目的分支。原始项目主页(不再包含代码)位于https://code.google.com/p/cppclean/。
功能
cppclean可以找到以下内容
具有虚拟方法但没有虚拟析构函数和基类的类
在多线程中使用时可能成为问题的全局/静态数据
已声明但未定义的函数
不必要的类前向声明
不必要的函数声明
未声明的函数定义
- 头文件中的不必要的#include
未直接引用头文件中的任何内容
如果类被前向声明,则头文件是不必要的
在#include中不一致的大小写(foo.h 与 Foo.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的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 704e844f4340d4fd5bcaa9cd0095389d348f11548628f7054d8eb95463d72109 |
|
MD5 | 3dc2f4f4ae0001ed3eaa377a3107c68d |
|
BLAKE2b-256 | e372f19e794a81dcbfe637a4e8b10b5de12a5cd798ae63653b4fb05886db2bb7 |