ReSharper C++ 2024.3 improves performance in large solutions, implements new C++23 and C23 features, and introduces the Move to Folder refactoring. In Unreal Engine projects, ReSharper C++ now offers code completion for gameplay tags and logging macro arguments, along with enhanced support for delegates.
Free 30-day trial available
In ReSharper C++ 2024.3, we focused on optimizing memory usage in large solutions, resulting in a significantly smaller memory footprint. According to our tests, memory usage after initial indexing is now approximately 20% lower for Unreal Engine and 30% lower for Chromium.
These memory savings, combined with optimizations to reduce memory traffic, have also boosted indexing speed. For example, the initial indexing of the LLVM solution is now up to 10% faster.
ReSharper C++ 2024.3 completes support for major
C++23 features by implementing literal suffixes for size_t
and
attributes on lambda expressions. Additionally, the C++17
std::has_unique_object_representations
type trait is now evaluated.
For C language users, ReSharper C++ adds support
for the typeof
and typeof_unqual
keywords, as well as the
__has_c_attribute
macro from C23.
To enhance compatibility with non-MSVC compilers,
ReSharper C++ implements several GNU language
extensions, including switch case ranges, named variadic macro parameters,
the transparent_union
type attribute, and
__attribute((aligned(...)))
.
ReSharper C++ also recognizes many new compiler
built-ins, including additional type traits and floating-point comparisons.
Code completion now suggests available category names and verbosity levels in
the arguments of the UE_LOG
and UE_LOGFMT
macros.
Built-in live templates with the same names help you quickly add new logging
statements.
ReSharper C++ now discovers gameplay tags defined
in your project and suggests them when completing the argument of the
FGameplayTag::RequestGameplayTag
function.
Enhanced support for the UDELEGATE
macro includes completion
of reflection specifiers inside macro attributes and tracking the number
of usages from Blueprints for class members of delegate types.
If you’re interested in a standalone cross-platform IDE for Unreal Engine development, consider Rider. The Unreal Engine support in Rider and ReSharper C++ is aligned, and you can expect the same improvements in the Rider 2024.3 update.
You can now easily move C++ files around with the Move to Folder
refactoring. After moving the selected files to the new location, the refactoring
updates #include
directives to reflect the changes in the project
structure.
For users working with the C++20 ranges library, we’ve introduced new context actions that allow you to convert range adaptor usages between pipe and call forms. We’ve also improved diagnostic messages for overloading errors when using range adaptors in pipe form.
ReSharper C++ 2024.3 supports multiline TODO comments, allowing indented text on subsequent lines to be treated as a part of the same TODO item. Additionally, if you encounter a to-do item that links to an external issue, you can use the Peek To-do link action (Ctrl+Shift+Click) to display the issue inline.
Typing assistance now automatically inserts a space before an opening parenthesis when the Space before parentheses in control statements formatter option is enabled.
New formatter settings let you configure the braces style for C++/CLI properties and the line break before a function try block.
If your project uses XML syntax for documentation comments instead of Doxygen,
you can now easily customize the style of the default documentation template
in the Code Generation settings. ReSharper C++
now also recognizes XML documentation within /** ... */
comments
and displays it correctly in tooltips.
Another new setting lets you control whether code generation actions should preserve default function arguments when creating overriding functions.
ReSharper C++ 2024.3 includes the clang-tidy and clang-format binaries from Clang 19, bringing new checks and improvements from the latest LLVM release.
// NOLINT(...)
comments in your code that disable specific
clang-tidy checks now also disable the corresponding ReSharper inspections.
The built-in formatter now recognizes // clang-format off
and
// clang-format on
comments and turns formatting off in the
delimited regions.
Take a look at the What's New in ReSharper page to learn about all the other changes introduced in this release.
Free 30-day trial available