ReSharper C++ 2019.1 vs Visual Studio 2019

This document lists some of the features that are provided by ReSharper C++ 2019.1 but are missing or not as fully implemented in bare Visual Studio 2019.

You are viewing a comparison for an earlier version of ReSharper C++. View this page in the latest version.
Microsoft Visual Studio 2019 16.0
Microsoft Visual Studio 2019 16.0 + ReSharper C++ 2019.1

Supported C/C++ specifications

C/C++ C/C++
C++/CLI C++/CLI
C++/CX Not supported

Code analysis and corrections

On-the-fly design-time code analysis (compiler errors and warnings) On-the-fly design-time code analysis (compiler errors and warnings + 180 proprietary code analysis rules)
2 quick-fixes to resolve code issues 120+ quick-fixes to resolve code issues
Reporting all errors and code quality issues in any scope, up to the entire solution
1000+ integrated Clang-Tidy diagnostics and checks
Navigation between code issues (tool window, editor, dedicated commands)
Spell-checking
Adjustable code inspections: 5 severity levels. Can be configured inline right from the Alt+Enter menu
Sharing code analysis settings on a solution or team level
Includes analyzer

Refactorings and code transformations

Rename Rename
Change signature Change signature
Extract function Extract method
Move function definition Move implementation out of class scope
Introduce variable
Encapsulate field (with Generate getters and setters action)
Add/Remove braces
Rename file
Introduce field
Inline variable
Introduce namespace alias
Introduce/Inline typedef
Add = default, = delete, pure, or virtual specifier to a function
Convert ?: to if and vice versa
Convert #include directive from angle-bracket to quoted form and vice versa
Convert typedef declaration into alias declaration and vice versa
Convert to nested namespace definition
Convert regular return type into trailing return type and vice versa
Create derived type: class, interface, struct, interface class, interface struct, ref class, ref struct
Flip relational operator
Flip operator arguments
Initialize field from constructor parameter
Invert if statement
Merge nested if statements
Negate logical expression
Remove braces
Replace 'auto' with explicit type declaration
Replace 'decltype' with the underlying type
Replace 'decltype(auto)' with explicit type declaration
Split or join declaration with multiple declarations
Substitute macro call
Substitute template type alias
Specify template arguments explicitly
Substitute typedef (and, optionally, all nested typedefs)

Coding assistance

Code completion Code completion with smart suggestions and CamelCase matching
Syntax highlighting Syntax highlighting (configurable colors for 20 different kinds of identifiers)
Tooltips for code elements Tooltips for code elements with highlighted syntax and formatted documentation comments
Expand/Contract selection Extend/Shrink selection
Comment selection (comment chosen automatically) Comment selection with line or block comment
Quick documentation
Automatically add #include directive
Import completion and postfix completion of free functions
Select containing declaration

Navigation & search

Navigate To Search everywhere
Go to declaration Go to declaration that also helps navigate between usages
Code bookmarks Code bookmarks
Quick launch Find actions and settings
Find references Find usages
Go to symbol Go to symbol
Go to type Go to type
Go to file Go to file
Go to file member Go to file member
Go to text
Highlight references
Navigation up and down inheritance hierarchy in the editor
Indication of type inheritors and method overrides
Go to base symbols
Go to derived symbols
Go to related files
Go to file nearby
Breakpoints navigation by context
Go to recent locations and changes
Type hierarchy view
Hierarchy of includes view
File structure
To-do items with external URL patterns
Go to primary template/specializations
Locate current file in Solution Explorer

Code generation

Code snippets (templates) Code snippets (templates), including live, surround, and postfix templates
Generate files from template Generate files from template
Generate code with code completion Generate code with code completion
Generate multiple files from template
Visual editor for code snippets (templates)
Create from usage
Generate definitions
Generate missing case statements for enum
Document symbol
Add Forward Declaration
Generate missing/overriding members
Generate constructors
Generate copy and move operators
Generate getters and setters
Generate equality operators
Generate relational operators
Generate stream operations (including Boost.Serialization functions)
Generate hash function
Generate swap function
Generate Google Mock methods
Generate function that converts enum to string (configurable)
Create derived type

Code style and cleanup

Reformat code Apply formatting rules in any scope (with ReSharper C++'s own extensive set of formatting rules)
EditorConfig support EditorConfig support with File Formatting Info window which allows to explore all .editorconfig files that affect the current file
ClangFormat automatically used as a source of formatting style settings
Learn formatting rules from existing code
Visual editor for formatting rules in selection
Configurable naming style with predefined schemes (STL, Google, LLVM, CamelCase, Microsoft)
Configurable style for const and volatile modifiers in generated code
Configurable style for include directive in generated code
Configurable style for default pointer initializers (0|nullptr|NULL) in generated code

Unit testing

Unit test explorer Unit test explorer
Microsoft Unit Testing Framework for C++ support Not supported
Google Test support Google Test support
Boost.Test support Boost.Test support
CTest support Not supported
Catch support
doctest support
Run tests from the editor
Multiple unit test sessions

Debugging

DataTips in the editor Searchable DataTips with configurable object presentation
Breakpoints tool window Breakpoints tool window with context search and preview
Inline watches
Step filters

Unreal Engine support

Unreal Engine naming conventions support
Unreal Engine remote procedure calls support
Code completion for Unreal Engine reflection specifiers

Managing settings

Synchronize settings via Microsoft ID Synchronize settings and custom templates with team via VCS or any file hosting service
Download
Free 30-day trial