ReSharper by Language: C++
C++ support is available either with ReSharper C++ - a dedicated product that you can install separately or side by side with ReSharper, or with ReSharper Ultimate. C++ support includes C, C++03, and partially C++11, C++14, C++17. ATL, MFC and COM projects are supported. ReSharper detects C++ version automatically based on the platform toolset ( in the project properties) and/or on the /std switch.
In this topic:
- Unsupported and partly supported language constructs
- Disabling ReSharper's code analysis engine with the __RESHARPER__ macro
- Making ReSharper ignore specific code
Also in this section:
- Code Inspection and Quick-Fixes
- Coding Assistance
- Code Style Assistance
- Navigation and Search
- Refactorings
- Code Templates
- Code Generation
- Unit Testing Assistance
Unsupported and partly supported language constructs
Unsupported C++11 features:
- Lambda functions are partially supported
- constexpr expressions
- User defined literals
Unsupported extensions:
Unsupported MS C++ extensions:
- C++ component extensions
- A new line immediately preceded by a backslash inside identifiers, keywords and numeric literals
- __identifier keyword
- Based Pointers
- Event Handling in Native C++
- When resolving names used in templates, all names are treated as dependent names
Partially supported MS C++ extensions:
Unsupported MS preprocessor extensions:
Disabling ReSharper's code analysis engine with the __RESHARPER__ macro
If some C++ construct is not supported by ReSharper's code analysis engine or parsed incorrectly, you can disable ReSharper for this code with the __RESHARPER__
macro, i.e:
#ifndef __RESHARPER__
// This code will not be visible to ReSharper
#endif
Making ReSharper ignore specific code
ReSharper allows you to ignore specific files, folders and file masks in different ways. You can configure ignored files on the following options pages:
- to exclude files, folders, and masks from code inspection.
- to partly disable code inspection for generated code.
- to specify files and folders that should be ignored by Navigation by Name commands.
- to add C++, JavaScript, TypeScript, CSS, HTML and JSON files, folders and wildcards to be treated either as 'skipped' or 'library'. ReSharper will completely ignore 'skipped' files, and treat 'library' files as read-only – indexed for navigation, but no inspections, quick-fixes and refactorings.