Early Access Program

The ReSharper C++ 2023.3 EAP Is Now Open

The ReSharper C++ 2023.3 Early Access Program starts today!

In case you’ve never participated in our EAPs, in short, this means that we’ll be rolling out a new preview build every week, and these builds are free to use. We encourage you to try them out and share your thoughts on the latest improvements and features so we can make ReSharper C++ better for you.

ReSharper C++ 2023.3 EAP

You can download the free EAP builds from our website or via the Toolbox App.


Unreal Engine

We’re starting the new release cycle off with a few nice additions for Unreal Engine projects. Are there any others you want us to implement? Submit a feature request!

A new inspection helps you avoid falling into one of the common traps of the AddDynamic helper macro. You now get a warning when a dynamic delegate function is not marked with the UFUNCTION macro:Method is not marked with the UFUNCTION macro

If you still find yourself writing boilerplate code occasionally, don’t forget that the Alt+Insert shortcut is available to automatically generate almost everything you need. In this EAP build, we’ve tuned the generation of hash functions to take the Unreal Engine style into account.
Generate UE hash function

Coding assistance

The #pragma region and #pragma endregion pair of directives lets you specify a foldable block of code. Like with other matching directives, you can now jump between the two using Go to Declaration on a #pragma directive or a new inlay hint with the region name.

Furthermore, the File Structure window now allows you to conveniently fold regions and navigate to the corresponding code blocks.
#pragma region and #pragma endregion

ReSharper C++ now suggests a new quick-fix to remove redundant conditional operators and simplify ternary conditional expressions:
Simplify conditional expression

In C code, void is sometimes used in a parameter list to indicate that the function doesn’t take any arguments. ReSharper C++ now treats this special void more carefully when you invoke the Extract method or Change signature refactorings, generate a new function from its usage, or generate a definition.

Among other notable features, we’ve introduced a set of warnings for incorrect usages of the export keyword in C++20 modules. ReSharper C++ now suggests removing export when the declaration is already enclosed by another export declaration or when the declaration is not in a module interface unit and cannot be exported. You’ll also get a suggestion to move export if you try templating the export declaration instead of exporting the template declaration.
Keyword export is redundant

We’ve also implemented support for a new InsertNewlineAtEOF clang-format setting for both importing formatter settings from .clang-format files and using an external clang-format executable.

Those are all the highlights for this first EAP build! The full list of fixed issues is available in our YouTrack. We’re always keen to receive your feedback about new features and updates!


Your ReSharper C++ team
The Drive to Develop

image description