ReSharper C++ introduces Blueprint-specific inlay hints and allows you to see the bigger picture behind your code:
UFunctionhas implementations in Blueprints and search for all such cases.
UProperty, including whether it has been overridden and what value is set in the Blueprint file.
We’ve also introduced two inspections to let you know if there are inconsistencies between the Blueprint-specific function specifiers used in the code and the Blueprints themselves:
BlueprintCallablefunction specifier is supposed to be used in a Blueprint, but no usages are found.
BlueprintImplementableEventfunction specifier is supposed to be implemented in a Blueprint, but no implementations are found.
We’ve significantly improved the indexing speed of Unreal Engine projects. As a result of caching of precompiled headers, ReSharper C++ now indexes your code base up to twice as fast as before.
This experimental performance boost is currently available for Visual Studio 2022 only.
ReSharper C++ now supports Spec tests from the Unreal
Engine automation testing framework. If you have a set of tests defined in the Define
method after the
DEFINE_SPEC macro or the
ReSharper C++ will successfully discover them. In the
Unit Test Sessions window, you can review the results of the tests and rerun
failed tests, all tests, or specific tests.
The code completion list now includes Widgets metadata specifiers.
ReSharper C++ now properly handles Unreal Engine containers
Emplace calls, bringing improved search and navigation features, parameter
name hints, and warnings about invalid arguments.
If you are interested in a stand-alone cross-platform IDE for Unreal Engine development, consider Rider. Unreal Engine support in Rider and ReSharper C++ is aligned and you can expect the same improvements in the Rider 2022.2 update.
We've improved the readability of error tooltips by adding syntax highlighting. The error highlighting range also became more precise. For example, when getting an aggregate initialization warning, you can now tell at a glance exactly which subobject caused an initialization failure.
Parameter name hints now support
We’ve updated the bundled Clang-Tidy binary to Clang 14, adding new checks from the latest LLVM release.
ReSharper C++ 2022.2 also brings updates for Boost tests and introduces support for the Public Include Directories and All Header Files are Public project properties.
Take a look at What's New in ReSharper to learn about the other changes introduced in this release. For example, you can now remove temporary files generated by ReSharper while it is working on your code (ReSharper | Options | Environment | Disk Cleanup).
Free 30-day trial available
ReSharper C++ 2022.1 brings a brand new way to quickly consult the Unreal Engine documentation about the details of a class, symbol, or function. You can now click Read more in the Quick Documentation pop-up (Ctrl+Shift+F1) to open the corresponding page in your browser.
The Rename refactoring now handles the Unreal Engine interface classes
better. When renaming interfaces, both the
classes will be renamed accordingly.
ReSharper C++ can now substitute the parameter names when you generate a member function signature from the Unreal Engine delegate.
You can now also generate such functions when the
ThisClass typedef is used.
Here is a short overview of the most important Unreal-related fixes delivered in this version:
.Target.csfiles on Unreal Engine 4.
MARK_PROPERTY_DIRTY_FROM_NAMEpush model macros – ReSharper C++ now is aware of entities generated by the replication system, such as
The Unreal Engine testing framework is now supported. ReSharper C++ discovers Unreal Engine unit tests and adds the corresponding action indicators next to each test in the editor to run or debug the test or the whole test suite. In the Unit Test Sessions window, you can review the results of the tests, and rerun failed, all, or specific tests.
The new version of the Catch2 unit test framework brings significant changes – it’s now split into multiple headers and has a statically compiled library as its distribution model. It means you now have to include several headers, but the compilation time is improved. So if you’d like to check out the updated Catch2 unit test framework, ReSharper C++ 2022.1 has full support to help you with it.
ReSharper C++ 2022.1 also includes updates for the latest releases of GoogleTest and doctest, as well as various unit testing fixes.
ReSharper C++ is now better at handling implicit constructor calls, allowing you to find usages and navigate to the called constructor in more cases, including the following:
make_unique/make_shared) and Unreal-specific (
MakeShared/MakeUnique) smart pointer creation functions.
emplace-like container methods.
static_castand c-style cast expressions.
ReSharper C++ now also shows you an overloading
warning when an
emplace-like function is called with incorrect arguments.
ReSharper C++ 2022.1 improves the multiline generation of boilerplate code for aggregate initialization using C++20 designated initializers. You can now invoke completion on the next line if you’d like to see each initializer on a new line.
ReSharper C++ now treats the C++20
requires-expressions correctly, allowing you to configure spaces
formatting via the Around ‘->’ in trailing return types option.
Use the new Line feed at the end of file option to control adding or removing a blank line from the end of files.
ReSharper C++ now supports the new Visual Studio 2022 release build, meaning you will have access to the same rich feature set you are used to using in other Visual Studio versions. Since Visual Studio 2022 is an x64 process, there is no longer a limit to the maximum amount of memory that can be allocated to it, and all the ReSharper С++ features work faster.
To work with ReSharper C++ in Visual Studio 2022, make sure that the VS2022 icon in the dotUltimate 2021.3 installer is selected.
You can use C++20 designated initializers to quickly generate boilerplate code for aggregate initialization (P0329). Just select the corresponding item from the completion list to insert designators for the data members, and then provide the initial values.
With the C++20
contains function, you can easily check whether an element exists
in an associative container
(P0458). A new inspection suggests replacing instances of
count with the new
contains member function.
The new standard brings convenient library functions for erasing elements that work
for all standard containers
A dedicated inspection will let you know when an erase-remove idiom can be replaced
Another new library addition is the smart pointer creation functions that perform
When you need to allocate an array of built-in types and then immediately initialize
it, you can now apply a quick-fix to use
With ReSharper C++ 2021.3, you no longer need to switch to Unreal Editor to create a new class – all predefined templates for Unreal Engine classes are now available in the list of ReSharper file templates.
To create a new class, go to Solution Explorer and right-click on the preferred project folder to open the Add menu (or use Ctrl+Alt+Insert). After you choose an Unreal Engine template from the list and give your new class a name, ReSharper C++ will generate the header and source files with the template code in the proper folders depending on whether the folder is private or public.
We’ve fixed an issue that would sometimes cause ReSharper to reindex source code when a solution was loading.
A new inspection marks redundant parentheses in lambdas with no parameters, since a parameter list is not required in such cases.
When an elaborated type specifier is used neither to declare a new class nor to refer to a previously declared but hidden class, ReSharper C++ will suggest removing the specifier.
A new inspection finds
for loops that can be written in a more concise
while loops. The accompanying quick-fix lets you quickly rewrite
User specializations of classes like
are often wrapped in a standalone namespace. To make your code more readable,
ReSharper C++ suggests using a qualified class name instead.
If you construct an object of an exception type but do not use it,
ReSharper C++ now warns you and lets you quickly
The Quick Info tooltip now includes the evaluation results for constant
expressions. You can use this feature to see what subexpressions of a failing
static_assert expression evaluate to, or to check out the value of
In addition to the Document action (via the Alt+Enter menu or the
Ctrl+/ shortcut), you can now generate a stub for a new documentation
comment by typing
/// before a function or another entity you want to document.
The File Structure window now groups symbols with the same qualifier. This is especially useful in source files that contain a lot of out-of-class functions.
ReSharper C++ 2021.3 allows you to search for declarations in inactive code, where navigation was previously not available.
You can also now navigate from a
goto statement to the corresponding label.
The Change Signature refactoring now lets you easily control the
[[nodiscard]] attribute, which indicates that the function
caller should use the function’s return value.
ReSharper C++’s 2021.3 supports C11
expressions, which provide a mechanism for limited compile-time choices in C.
Take a look at What's New in ReSharper to learn about the other changes introduced in this release. For example, additional GitHub-related items in the Copy Code Reference pop-up make it easy to share links with people, and you can also add a custom URI template for non-GitHub repositories.