IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La première version EAP de ReSharper C++ 2023.2 est disponible :
Un aperçu des améliorations pour l'extension Visual Studio de JetBrains pour les développeurs C++

Le , par Michael Guilloux

20PARTAGES

5  0 
C'est au début du mois d'avril que JetBrains a publié la version 2023.1 de ReSharper C++, son extension Visual Studio de JetBrains pour les développeurs C++. ReSharper C++ 2023.1 a apporté des mises à jour pour les modules C++20 et se prépare déjà aux futures normes avec le premier lot de prise en charge de fonctionnalités pour C++23. La manipulation des macros est maintenant plus simple grâce aux aperçus de substitution des macros dans les info-bulles et les fenêtres contextuelles Quick Documentation. Cette version inclut également Call tracking, qui permet de voir les chaînes d'appels et de les parcourir dans la hiérarchie des appels entrants.

JetBrains ouvre maintenant le programme d'accès anticipé (EAP) à ReSharper C++ 2023.2, la deuxième mise à jour majeure de cette année. Vous pouvez donc essayer les nouvelles fonctionnalités avant qu'elles ne soient officiellement publiées. Cela dit, quelles sont les nouveautés et améliorations de cette version ?

Refactorisation Safe Delete

ReSharper C++ introduit la refactorisation Safe Delete pour vous permettre de supprimer des symboles du code source en toute sécurité. À partir de cette version EAP, la refactorisation est disponible pour supprimer une classe, une fonction, une variable, un espace de noms et même un concept.

Ce qui rend cette refactorisation sûre est qu'avant de supprimer un symbole, ReSharper C++ recherche les utilisations et vous permet de prévisualiser les résultats, afin que vous puissiez être sûr que toutes les suppressions sont intentionnelles. Par exemple, si vous essayez de supprimer une entité complexe, comme une classe ou un espace de noms, ReSharper C++ vérifiera de manière récursive les utilisations de tous ses membres.

Pour invoquer la refactorisation, placez le curseur sur l'élément que vous souhaitez supprimer et sélectionnez Safe Delete dans le menu Refactor This. Vous pouvez également choisir ReSharper | Refactor | Safe Delete dans le menu principal ou utilisez le raccourci correspondant (Alt+Suppr ou Ctrl+R,D, selon le schéma de raccourci que vous utilisez).


Si vous souhaitez conserver du code dont la suppression est prévue, double-cliquez sur l'utilisation dans la liste pour accéder à la ligne correspondante et effectuer les ajustements nécessaires. Une fois que vous êtes satisfait de la liste des utilisations à supprimer, cliquez sur Next pour confirmer la suppression de votre code.


C++23 : if consteval

C++20 a apporté plusieurs nouvelles fonctionnalités liées à l'évaluation constante, notamment consteval et std::is_constant_evaluated(). Pour récapituler rapidement, le mot-clé consteval spécifie une fonction qui ne peut être évaluée qu'au moment de la compilation, tandis que std::is_constant_evaluated() est une fonction de bibliothèque qui vérifie si l'évaluation courante est une évaluation de constante.

C++23 a corrigé certains problèmes d'interaction pour ces fonctionnalités et a développé l'idée en introduisant l'instruction if consteval. Si l'évaluation de cette instruction se produit pendant une évaluation de constante, l'instruction composée suivante est exécutée. Sinon, la branche else est exécutée.

Dans cette version EAP, ReSharper C++ introduit la prise en charge de if consteval et apporte de nouvelles inspections pour vous aider à expérimenter les récentes fonctionnalités de langage pour une évaluation de constante :

  • “consteval if is always constant” vous avertit lorsque la condition est toujours vraie dans le contexte immédiat.
  • “std::is_constant_evaluated will always evaluate to constant” vous avertit lorsque le résultat de la fonction est toujours vrai dans ce qui est manifestement une expression d'évaluation de constante.
  • “if can be replaced by if consteval” suggère un correctif rapide pour mettre à jour votre code dans le style C++23.


Mises à jour pour la prise en charge des concepts de C++20

Avec une complétion améliorée pour le code dépendant, vous obtiendrez désormais des éléments de complétion lorsque le type est limité par des concepts ou des traits. ReSharper C++ prend désormais en compte toute la variété des traits de type std::is_same/std::is_base_of, leurs alias de valeur _v, les concepts std::same_as/std::derived_from correspondants et le trait Unreal Engine TIsSame.


Pour des suggestions de complétion de code plus utiles, ReSharper C++ extrait désormais également les exigences de type et de valeur d'une requires-clause, if constexpr et SFINAE, comme le modèle <<class T, class = std::enable_if_t<std::is_base_of<X, T>>> void foo(T arg);.

Une nouvelle action contextuelle vous aidera à déplacer la contrainte de paramètre de modèle vers une requires-clause :


Il existe également une action contextuelle complémentaire pour vous aider à faire l'action inverse - convertir une requires-clause en une contrainte de paramètre de modèle :


Enfin, toutes les inspections ReSharper C++ habituelles pour les entités non utilisées fonctionnent désormais également pour les modèles et les concepts.

Autres améliorations

ReSharper C++ 2023.1 a introduit la mise en évidence complète des éléments de syntaxe et une bonne mise en forme du code pour la substitution de macros dans la fenêtre contextuelle Quick Documentation et les info-bulles au survol. Pour des raisons de cohérence, à partir de cette version EAP, ces améliorations fonctionneront également pour les définitions de macro elles-mêmes :


Lorsque vous spécifiez la direction du paramètre avec l'attribut [in], [in,out] ou [out] de la commande param de Doxygen, les info-bulles les récupèrent désormais à partir de votre commentaire :


Cette version EAP ajoute une nouvelle inspection "Redundant dereferencing and taking address". Elle vous propose plusieurs correctifs rapides pour supprimer les redondances :

“Operator . can be replaced with ->” et vice versa.


“Taking address of dereferencing can be removed” et vice versa.


ReSharper C++ prend désormais en charge l'option de compilateur /Zc:preprocessor, qui active le mode de conformité du préprocesseur.

JetBrains a également mis à jour le binaire clang-tidy intégré vers Clang 16, ce qui fournit de nouvelles vérifications.


Voici présentés les points forts de cette première version EAP. Vous pouvez la télécharger à partir du site Web officiel de ReSharper C++. Vous pouvez aussi l'obtenir à partir de l'application gratuite Toolbox ou utiliser des snaps si vous utilisez Ubuntu.

Télécharger la dernière version EAP de ReSharper C++

Une erreur dans cette actualité ? Signalez-nous-la !