Skip to main content

Find problems in C++ source that slow development of large code bases.

Project description

Build status

Goal

cppclean attempts to find problems in C++ source that slow development in large code bases, for example various forms of unused code. Unused code can be unused functions, methods, data members, types, etc to unnecessary #include directives. Unnecessary #includes can cause considerable extra compiles increasing the edit-compile-run cycle.

This is a fork of the original cppclean project. The original project home page, (which no longer contains code) is: https://code.google.com/p/cppclean/

Features

  • Find and print C++ language constructs: classes, methods, functions, etc.

  • Find classes with virtual methods, no virtual destructor, and no bases

  • Find global/static data that are potential problems when using threads

  • Unnecessary forward class declarations

  • Unnecessary function declarations

  • Undeclared function definitions

  • Find unnecessary header files #included
    • No direct reference to anything in the header

    • Header is unnecessary if classes were forward declared instead

  • (planned) Source files that reference headers not directly #included, ie, files that rely on a transitive #include from another header

  • (planned) Unused members (private, protected, & public) methods and data

AST is Abstract Syntax Tree, a representation of parsed source code. http://en.wikipedia.org/wiki/Abstract_syntax_tree

Installation

$ pip install --upgrade cppclean

Run

$ cppclean <path>

Multiple include paths can be specified:

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

Current status

The parser works pretty well for header files, parsing about 99% of Google’s header files. Anything which inspects structure of C++ source files should work reasonably well. Function bodies are not transformed to an AST, but left as tokens. Such work is still needed on finding unused header files and storing an AST in a database.

Non-goals

  • Parsing all valid C++ source

  • Handling invalid C++ source gracefully

  • Compiling to machine code (or anything beyond an AST)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cppclean-0.1.3.tar.gz (30.2 kB view details)

Uploaded Source

File details

Details for the file cppclean-0.1.3.tar.gz.

File metadata

  • Download URL: cppclean-0.1.3.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cppclean-0.1.3.tar.gz
Algorithm Hash digest
SHA256 a516694c54486e29fe887953bc14077fcb7aad2dc9d38bd69c134cec206fae10
MD5 43cb4ac499ae0c8ada1e71b320a56686
BLAKE2b-256 a2a0d1af489f8247ab7d4ea1d03db260c22cbf55a608708ae57867afa35ce489

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page