Das ist neu in ReSharper C++ 2024.2

ReSharper C++ 2024.2 implementiert neue C++23-Sprachmerkmale, ergänzt Tooltips um Typlayout-Informationen und führt mehrere Verbesserungen für das Rename-Refactoring ein. Für die Unreal-Engine-Entwicklung bietet ReSharper C++ 2024.2 Unterstützung für Struct Traits sowie eine neue Inspektion, die fehlende Basismethoden-Aufrufe erkennt.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar

C++23-Unterstützung

ReSharper C++ 2024.2 unterstützt den mehrdimensionalen Indexoperator. Durch die Verwendung von operator[] mit mehreren Argumenten können Sie mehrdimensionale Container und Views besser unterstützen.

ReSharper C++ versteht jetzt auch die C++23/C23-Präprozessoranweisungen #elifdef und #elifndef, die die bestehenden Anweisungen #ifdef und #ifndef ergänzen.

[[assume(<expr>)]] ist ein neues Attribut in C++23, das eine portable Möglichkeit bietet, dem Optimierer über einen Argumentausdruck zusätzliche Informationen zu übergeben. ReSharper C++ parst jetzt das Argument und unterstützt innerhalb des Arguments alle üblichen Code-Intelligence-Funktionen.

Unreal Engine

ReSharper C++ erkennt jetzt die Struct-Traits der Unreal Engine. In Structs, die durch Struct-Traits annotiert sind, prüft ReSharper C++, ob die erforderlichen Methoden vorhanden sind, und kann fehlende Methoden generieren.

Eine neue Inspektion erkennt fehlende Aufrufe von Basismethoden, insbesondere in den Methoden BeginDestroy und GetLifetimeReplicatedProps. Der dazugehörige Fix fügt den erforderlichen Super-Aufruf ein.

Eine weitere neue Inspektion kennzeichnet Verwendungen von IOnlineSubsystem::Get() und ersetzt sie durch Online::GetSubsystem(this->GetWorld()).

Wenn Sie an einer eigenständigen, plattformübergreifenden IDE für die Unreal-Engine-Entwicklung interessiert sind, sollten Sie sich Rider ansehen. Die Unreal-Engine-Unterstützung in Rider und ReSharper C++ ist identisch, und Sie können die gleichen Verbesserungen in Rider 2024.2 erwarten.

Typlayout

Die Quickinfo-Tooltips enthalten jetzt Informationen zum Typlayout. Bewegen Sie einfach den Mauszeiger auf eine Klasse oder ein Klassenfeld, um Größe und Alignment des Elements zu prüfen.

Bei einem Klassenfeld sehen Sie zusätzlich den Offset des Feldes ab Objektanfang sowie das Padding, das nach dem Feld eingefügt wird.

Verbesserungen für das Rename-Refactoring

Wenn Sie eine Datei umbenennen, bietet ReSharper C++ jetzt eine neue Option, um zugehörige Dateien mit demselben Namen umzubenennen. Wenn Sie zum Beispiel eine Header-Datei umbenennen, wird die .cpp-Datei, die den Header inkludiert, ebenfalls umbenannt.

Eine weitere Rename-Option bietet die Möglichkeit, den Typ innerhalb der Datei automatisch umzubenennen, sodass er dem neuen Dateinamen entspricht.

Und schließlich können Sie beim Umbenennen eines Namensraums in einer Datei mit passendem Namen auch die Datei selbst automatisch umbenennen.

Codeanalyse

Die mitgelieferte clang-tidy-Programmdatei wurde auf Clang 18 aktualisiert und enthält neue Prüfungen und Verbesserungen aus dem neuesten LLVM-Release.

Analog zur Unterstützung von NOLINT-Kommentaren im Update 2024.1 erkennt ReSharper C++ jetzt die pragmas von include-what-you-use, um die Inspektion Possible unused #include directive zu unterdrücken.

Wir haben einen Fix hinzugefügt, um reinterpret_cast bei Konvertierungsfehlern zu verwenden, wenn entweder der Quell- oder der Zieltyp ein Zeiger auf char oder std::byte ist.

Verschiedenes

Die Menüaktion Why is ReSharper suggesting this? (Warum schlägt ReSharper dies vor?) führt jetzt bei Codeinspektionen, die eine C++-Core-Guideline implementieren, zur entsprechenden Guideline.

Der Filter Base method call ist jetzt im Fenster Find Results verfügbar und ermöglicht das Herausfiltern von Basismethoden-Aufrufen aus der Verwendungsliste.

ReSharper C++ bietet jetzt asynchrones Tippen als Teil unserer laufenden Bemühungen zur Verbesserung der Performance, indem ReSharper außerhalb des Visual-Studio-Prozesses ausgeführt wird. Unsere internen Tests haben gezeigt, dass die Tastatureingabe flüssiger wird, wenn asynchrones Tippen aktiviert ist.

ReSharper C++ verbessert außerdem die Kompatibilität mit CMake-Projekten in Visual Studio, behebt mehrere wichtige Probleme und verbessert die Performance bei der Codebearbeitung.

Unter <Das ist neu in ReSharper finden Sie Informationen zu weiteren Änderungen in diesem Release.

Herunterladen

Kostenlose 30-Tage-Testversion verfügbar