Nouveautés de ReSharper C++ 2025.3

ReSharper C++ 2025.3 inaugure la prise en charge de plusieurs fonctionnalités majeures du langage issues de la norme C++26 et améliore encore le moteur d'évaluation constexpr. Les mises à jour du mode Out-of-Process renforcent la stabilité et la réactivité globale, tandis que notre migration vers l'environnement d'exécution .NET Core apporte des gains de performance significatifs. De plus, le démarrage à chaud dans les projets Unreal Engine s'est grandement accéléré, ce qui vous permet de commencer à coder plus tôt.

C++26

ReSharper C++ 2025.3 poursuit notre travail sur la prise en charge de C++26. Cette version ajoute la prise en charge de fonctionnalités majeures de la dernière norme du langage :

  • Indexation des packs : les éléments individuels d'un pack sont désormais accessibles à l'aide de l'opérateur d'indice.
  • Instructions d'expansion : vous pouvez maintenant itérer sur les éléments au moment de la compilation grâce à la nouvelle instruction template for.
  • Packs dans les liaisons structurées : une déclaration de liaison structurée peut désormais inclure un seul pack pour lier un nombre arbitraire d'éléments.
  • Concepts et modèles de variables en tant que paramètres de modèle de modèle : les paramètres de modèle de modèle acceptent désormais non seulement des modèles de classes, mais aussi des concepts et des modèles de variables.
  • Contrats : vous pouvez maintenant utiliser une syntaxe au niveau du langage pour exprimer des préconditions, des postconditions et autres assertions.

Évaluation constexpr

Dans cette version, nous avons résolu de nombreux problèmes dans le moteur d'évaluation constexpr. Ces améliorations, ainsi que les précédentes, ont permis la mise en place d'une nouvelle inspection qui détecte les échecs d'évaluation de constexpr et présente une trace d'évaluation complète pour vous aider à diagnostiquer plus facilement ce problème.

Unreal Engine

ReSharper C++ 2025.3 accélère considérablement le démarrage à chaud dans les projets Unreal Engine, grâce à des optimisations dans l'initialisation du projet et l'analyse des ressources. Lors de nos tests, l'analyse du code du fichier actif s'effectue jusqu'à 30 % plus rapidement après le démarrage de l'IDE. Mais ce n'est pas tout : vous pouvez désormais commencer vos modifications immédiatement ; il n'est plus nécessaire d'attendre la fin de l'indexation de tous les fichiers de ressources après l'ouverture d'une solution.

Cette version apporte également plusieurs améliorations de confort pour les développeurs Unreal Engine :

  • Les modifications apportées au système Sparse Class Data dans UE 5.6 sont maintenant prises en charge.
  • La refactorisation Rename met désormais correctement à jour les références à l'intérieur des macros UE_INLINE_GENERATED_CPP_BY_NAME.
  • L'outil de mise en forme a reçu un nouveau paramètre permettant d'indenter les déclarations après les spécificateurs UFUNCTION et UPROPERTY, et il ne force plus une nouvelle ligne après le spécificateur UPARAM.
  • L'importation automatique gère désormais les expressions de collection C# lors de l'ajout de références de module aux fichiers .Build.cs.
  • Les dernières mises à jour du format de fichier de ressources sont désormais prises en charge.

Si vous recherchez un IDE autonome et multiplateforme pour le développement Unreal Engine, nous vous suggérons d'essayer Rider. La prise en charge d'Unreal Engine dans Rider et dans ReSharper C++ est alignée, vous retrouverez donc les mêmes améliorations dans la version 2025.3 de Rider.

Visual Studio 2026

ReSharper C++ 2025.3 devrait être compatible avec la nouvelle version de Microsoft Visual Studio 2026. Vous remarquerez peut-être aussi que ReSharper a une toute nouvelle interface dans Visual Studio 2026. Nous avons repensé nos fenêtres contextuelles et nos menus déroulants, ainsi que plusieurs fenêtres d'outils (telles que Find Results et Unit Tests) pour leur donner une apparence plus élégante et plus moderne qui correspond mieux à l'évolution de l'interface utilisateur de Visual Studio.

Remarque : actuellement, les infobulles de ReSharper ne fonctionnent pas dans Visual Studio 2026. Nous travaillons activement à la résolution de ce problème.

Mode Out-of-Process

Nous continuons à perfectionner le mode Out-of-Process de ReSharper, en améliorant sa stabilité, en corrigeant les problèmes et en intégrant les fonctionnalités manquantes de la configuration traditionnelle in-process. Plusieurs fonctionnalités, notamment Peek Definition, les tests unitaires, les indications dans l'éditeur pour les projets Unreal Engine et les modèles de fichiers, fonctionnent désormais en mode Out-of-Process.

Le processus backend s'exécute maintenant sur l'environnement d'exécution .NET Core et a été optimisé pour de meilleures performances. Lors de nos tests, l'indexation initiale dans un projet Unreal Engine est jusqu'à 25 % plus rapide en mode Out-of-Process que dans la configuration in-process.

Le mode Out-of-Process est désactivé par défaut. Pour l'activer, allez dans ReSharper | Options | Environment | Products & Features et sélectionnez l'option Run ReSharper in separate process.

Assistance à la programmation

ReSharper C++ 2025.3 met à jour les binaires Clang-Tidy et Clang-Format intégrés vers LLVM 21, apportant les dernières vérifications et améliorations de la dernière version de LLVM.

La refactorisation Extract Method vous permet à présent de choisir une variable locale à renvoyer par la fonction nouvellement créée. Nous avons également amélioré les performances du volet d'aperçu dans la boîte de dialogue Change Signature, en particulier dans les fichiers comportant de nombreuses inclusions.

Quick Info affiche désormais la quantité totale de marge intérieure d'une classe, en plus de sa taille et de son alignement, ce qui vous aide à optimiser la disposition en mémoire de vos objets.

Un nouveau paramètre de mise en forme permet d'aligner les initialiseurs désignés en colonnes.

Consultez la page des Nouveautés de ReSharper pour en savoir plus sur tous les autres changements introduits dans cette version.