Institute for
HSR

Includator

#include Structure Analysis and Optimization for C++ for Eclipse CDT

The Includator plug-in analyzes the dependencies of C++ source file structures generated by #include directives, suggests how the #include structure of a C++ project can be optimized and performs this optimization on behalf of the developer. The aim of these optimizations is to improve code readability and quality, to reduce the duration of builds and the development time of C++ software.

 

Includator Features

  • Find unused includes
    Scans a single source file or a whole project for superfluous #include directives and proposes them to be removed. This also covers the removal of #include directives providing declarations that are (transitively) reachable through others.
  • Directly include referenced files
    Ignores transitively included declarations and proposes to #include used declarations directly, if they are not already included. This provides an “include-what-you-use” code structure.
  • Organize includes
    Similar to Eclipse Java Development Tool's Organize imports feature for Java. Adds missing #include directives and removes superfluous ones.
  • Replace includes with forward declarations
    Locates #include directives for definitions that can be omitted, when replacing them with corresponding forward declarations instead. This one is useful for minimizing #includes required in header files.
  • Static code coverage
    Marks C++ source code as either used, implicitly used or unused by transitively following C++ elements’ definitions and usages. This helps to trim declarations and definitions not used from your source code. In contrast to dynamic code coverage, such as provided by our CUTE plug-in it allows to determine required and useless C++ declarations and definitions instead of executed oder not-executed statements.
  • Find unused files
    Locates single or even entangled header files that are never included in the project’s source files.

 

User Feedback and Participation

Includator is still in beta testing. Register at includator.com if you are interested in becoming a beta tester, if you just want to try it or if you want to be notified about Includator releases.