The C++ CloneDR identifies and displays code segments within a system
that are identical or nearly identical (clones), supporting the consolidation of
clones to reduce the size and increase the clarity and reliability of the source
code. It is a member of Semantic Designs
- Dialects: Gnu GCC3/4/5 with C++11 and C++14, Visual C++ 6.0, ISO899c1990, Microsoft Visual Studio 2005, MSVS 2012
- Not dependent on any particular compiler
- Works with arbitrary subsets of source code base
- Can handle thousands of source files
- Analysis can be parameterized by clone similarity threshold, clone size, maximum number of clone parameters, and other limits
- Handles macros and #include directives
- Each clone tuple characterized individually by mass, number of instances, number of parameters, similarity ratio, language syntax category, length, and location, with each instance pictured
- Produces a summary report in HTML including statistics sorted by various attributes and with links to HTML pages describing individual clones. See a complete Clone Detection report for a C++ application, and a typical individual clone report.
Semantic Designs also offers other C++ tools.