Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Cppdepend
Static analysis tool for C/C++ code

CppDepend is a static analysis tool for C/C++ code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules. User-defined rules can be written using LINQ queries. This possibility is named CQLinq. The tool also comes with a large number of predefined CQLinq code rules.

We don't have any images related to Cppdepend yet.
We don't have any YouTube videos related to Cppdepend yet.
We don't have any PDF documents related to Cppdepend yet.
We don't have any Books related to Cppdepend yet.
We don't have any archived web articles related to Cppdepend yet.

Features

The main features of CppDepend are:

  • Support for Coding Standards: Misra C++, Misra C, Cert C, Cert C++, CWE, Autosar
  • Support for C++23, C++20, C++17
  • Declarative code rule over LINQ query (CQLinq)
  • Dependency Visualization (using dependency graphs, and dependency matrix)
  • Software metrics (CppDepend currently supports 82 code metrics: Cyclomatic complexity; Afferent and Efferent Coupling; Relational Cohesion; Percentage of code covered by tests, etc.)
  • CppDepend can tell you what has been changed between 2 builds

New features in v2024.1

  • Advanced Source Explorer.
  • Support for C++23/C++20/C++17.
  • C++ Modules Support.
  • Improved Incremental analysis.
  • Improved Visual Studio support.
  • New useful rules added.
  • Improved Linux Support.
  • External Symbols Refined.

Code Rule through LINQ Query (CQLinq)

The tool proposes live code query and code rule through LINQ query. This is one of the innovations of CppDepend. For example:

- Classes inherit from a particular class:

// <Name>classes inherit from a particular class</Name> from t in Types where t.IsClass && t.DeriveFrom ("CBase") select t

- The 10 most complex methods (Source Code Cyclomatic complexity)

// <Name>The 10 most complex methods</Name> (from m in Methods orderby m.CyclomaticComplexity select new { m, m.CyclomaticComplexity }).Take(10)

In addition, the tool proposes a live CQLinq query editor with code completion and embedded documentation.

See also