C++ Smart Differencer
The C++ Smart Differencer tool compares two C++ source files to determine the changes made from one to determine the other. It is a member of SD's family of SmartDifferencer tools. An example of the C++ Smart Differencer's results can be seen here.
C++ Smart Differencer Features
- Compares two C++ files and produces list of explicit changes
- Handles C++ in a variety of dialects; ANSI, GCC3/4, MS VisualStudio 2005
- Understands C++ language syntax precisely:
- All keywords, operators, and identifiers
- Integer and floating constants as their numeric value
- Whitespace (ignored)
- /* ... */ and //... comments (ignored)
- Output in terms of language syntax elements: identifiers, expressions, statements, blocks, methods, classes
- Detects consistent renaming within an arbitrary block of code
- Generates deltas in two forms:
- Human readable format, showing location of deltas type (language nonterminals), locations (line,column) and before and after text
- Summary form, showing just succinct summary of delta types and locations
- Can process batches of files, specified either manually or through a Java-based file-selector GUI.
- Input encoding in ASCII, European ASCII, or UNICODE (UTF-8 or UTF-16)
- Output encoding in ASCII, European ASCII, or UNICODE (UTF-8 or UTF-16)
Note: The SmartDifferencer operates on only well-structured C++ source files. C++ source files that contain preprocessor conditionals or macro calls in unusual places will not be processed by the SmartDifferencer tool. This tends to be less of a problem with C++ than it is with C.