发现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 JVM易受分析或直接访问攻击吗?   Java 1.4.2读取文件   Java如何在单个变量中管理多个数据列表,并方便地访问每个列表   当双击时,java程序无法正常工作。jar文件   JAVAutil。扫描器关闭构造函数链接期间生成的Java扫描器对象   需要java paypal api调用证书吗?   如何在java应用程序中使用GraalVM SDK库?   函数<T,布尔>到谓词<T>   JSF中的java验证   使用三元运算符和if条件的java差异   java考虑如果第二个真值都评估所有第三个   使用带有多个比较器的比较器的java   java无法为Apache Derby加载JDBC驱动程序   java如何读取由特定delimeter分隔的TCPsocket中的数据   java打印使用logback在日志中调用类名   java上的服务和@Transactional   java重新部署项目上载图像文件夹被删除   java InetAddress从IP返回网站的实际公共地址