发现C++源中的问题,即开发大型代码库。

cppclean的Python项目详细描述


Build status

目标

CppCurn试图在C++源中发现发展缓慢的问题 在大型代码库中,例如各种形式的未使用代码。 未使用的代码可以是未使用的函数、方法、数据成员、类型等 包含不必要的指令。不必要的包含可能导致 大量额外的编译增加了编辑编译运行周期。

这是原始cppclean项目的一个分支。原项目所在地 不再包含代码的页位于https://code.google.com/p/cppclean/

功能

cppclean找到以下内容:

  • 具有虚方法、无虚析构函数和无基的类
  • 使用线程时可能出现问题的全局/静态数据
  • 已声明但未定义的函数
  • 不必要的前向类声明
  • 不必要的函数声明
  • 未声明的函数定义
  • 不必要的包含在头文件中
    • 没有直接引用标题中的任何内容
    • 如果类是前向声明的,则不需要头
  • includes中的大小写不一致(foo.hFoo.h
  • (计划的)不必要的包括在源文件中
  • (计划的)引用未直接包含的头的源文件, 即,依赖于另一个头中的可传递包含的文件
  • (计划)未使用的成员(私有、受保护和公共)方法和数据
  • (计划的)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以外的任何代码)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我们可以使用java for loop with switch语句。。?   java如何从具有循环关系的数据集生成树?   使用s:mvcUrl标记时java Spring启动问题   javascript Wicket调色板水平滚动条在firefox中不显示   java如何清理Maven插件绑定?   java将文件从设备发送到计算机不起作用(文件被破坏)   Java GPU编程的性能   java字符串标记器问题   连接Java LDAP断开连接   java Android GridView将无法确定正确的位置   java AlarmManager在指定时间未显示toast消息   MVC中的java测试外观|断言返回类型   logcat上的java Android运行时错误   java Building Workspace在Eclipse中遇到错误   堆栈溢出尾部递归遗传算法抛出“awteventque0”java。StackOverflowerr语言   java ArrayOutOfBounds测试代码不工作   java有没有像Moodle这样流行的课程管理系统?   java如何从jsp获取xml文件作为响应