Microsoft présente les nouveautés pour les développeurs C++ dans Visual Studio 2022 17.13, notamment des améliorations à la bibliothèque standard, ainsi que des fonctionnalités pour la productivité
Récemment, Microsoft a annoncé que la version 17.13 de Visual Studio 2022 est désormais disponible. Selon Microsoft, cette mise à jour se concentre sur la stabilité et la sécurité, ainsi que sur des améliorations continues pour tous les développeurs utilisant Visual Studio. Voici les nouveautés pour les développeurs C++
Bibliothèque standard et compilateur
Du côté du compilateur, Microsoft a implémenté le suffixe littéral size_t de C++23. Le suffixe uz ou UZ (ou n'importe quelle permutation de ceux-ci) vous aidera à éviter les troncatures sournoises ou les erreurs de comparaison signée, en particulier lors de l'écriture de boucles.
Exemple :
1 2 3 4 5 6 7 8 9
| //Infinite loop if v.size > max unsigned int
for (auto i = 0u; i < v.size(); ++i) {
//Use v and v[i]
}
//Fine due to uz literal
for (auto i = 0uz; i < v.size(); ++i) {
//Use v and v[i]
} |
Notez que, bien que cette fonctionnalité soit disponible dans le compilateur MSVC, elle n'est pas encore prise en charge dans le compilateur EDG qui alimente IntelliSense, de sorte que vous pouvez voir des gribouillis rouges dans votre éditeur jusqu'à ce que la prise en charge soit ajoutée.
En outre, cette version apporte plusieurs améliorations de la bibliothèque standard.
La fonctionnalité std::generator apporte le support tant attendu de la bibliothèque standard pour les coroutines.
Exemple :
1 2 3 4 5 6 7 8 9 10 11
| std::generator<int> fib() {
auto a = 0, b = 1;
while (true) {
co_yield std::exchange(a, std::exchange(b, a + b));
}
}
int answer_to_the_universe() {
auto rng = fib() | std::views::drop(6) | std::views::take(3);
return std::ranges::fold_left(std::move(rng), 0, std::plus{});
} |
La fonction fib est une coroutine (parce qu'elle utilise le mot-clé co_yield). Chaque fois que l'instruction co_yield est exécutée, fib est suspendue et la valeur est renvoyée à l'appelant. La coroutine fib peut alors être reprise ultérieurement pour produire d'autres valeurs, sans que le programmeur n'ait à gérer manuellement l'état de la fonction. Comme vous pouvez le voir dans la fonction suivante, std::generator est compatible avec les intervalles, on peut donc l'intégrer dans des adaptateurs d'intervalles de la bibliothèque standard.
Toujours dans le domaine de la conformité, deux documents ont été implémenté pour améliorer les performances de std::print.
Cette version améliore le débit de construction de <queue>, <stack>, <stacktrace> et <thread> en n'incluant pas tout <format>. Pour la même raison, ils ont déplacé system_clock, high_resolution_clock et chrono_literals d'un en-tête interne couramment inclus vers <chrono>. Cela a un impact sur la rupture des sources. Si vous voyez des erreurs de compilation se plaignant de ne pas reconnaître des types de chrono comme system_clock ou des UDL comme 1729ms, vous devez inclure <chrono> spécifiquement, au lieu de supposer que des en-têtes comme <thread> le feront glisser.
Microsoft a également poursuivi son travail d'amélioration de la vectorisation dans la bibliothèque standard. Cette version est accompagnée d'améliorations pour les types et fonctions suivants :
- (ranges::)find_end
- basic_string::(r)find
- adjacent_difference
- bitset
- basic_string::find_last_of
- (ranges::)remove
Productivité C++
Mises à jour de l'intégration Unreal Engine
Microsoft a effectué une série de mises à jour pour l'intégration d'Unreal Engine dans Visual Studio :
- ils ont ajouté deux nouvelles options dans Outils > Options qui vous permettent de spécifier Code Analysis with Unreal Header Tool pour les fichiers d'en-tête et les fichiers source. Pour améliorer les performances, l'analyse des fichiers source est désactivée par défaut.
- Vous pouvez désormais spécifier des dossiers publics et privés lorsque vous utilisez l'assistant d'ajout de classe, ce qui garantit que vos classes sont créées dans la structure de dossier correcte.
Paramètres du projet de prévisualisation C++23
Vous pouvez désormais activer un aperçu de l'implémentation C++23 dans Visual C++ directement à partir des paramètres de votre projet ! Ce nouveau paramètre permet d'accéder aux dernières fonctionnalités implémentées dans le standard C++23. Comme il s'agit d'une prévisualisation des fonctionnalités C++23, ces nouvelles fonctionnalités auront un support limité et pourront être modifiées dans les prochaines versions.
Nouveaux paramètres de la page des propriétés de génération de code pour x86 et x64
Propriété de longueur de vecteur : Configurez la longueur des vecteurs pour la génération de code sur x86 et x64 directement dans les paramètres de votre projet C++ en allant dans Propriétés de configuration > C/C++ > Génération de code.
Prise en charge d'AVX10.1 : Débloquez la puissance d'AVX10.1 avec une nouvelle entrée dans Enable Enhanced Instruction Set, en ajoutant le drapeau /arch:AVX10.1 à vos constructions.
Prise en charge des préréglages CMake v9
Visual Studio prend désormais en charge les préréglages CMake v9. Cette dernière version des presets CMake introduit plusieurs versions documentées d'expansions de macros dans le champ include d'un preset.
Spécification des paramètres de délai d'attente Linux pour C++
Microsoft a ajouté la prise en charge de la spécification d'un délai d'attente minimum pour vos machines distantes auxquelles vous êtes connecté via le gestionnaire de connexions dans Visual Studio.
Vous pouvez spécifier le délai d'attente dans l'invite de commande de Visual Studio, en utilisant la nouvelle propriété MinTimeoutSeconds. Par exemple, pour définir le délai d'attente à 1 minute, vous pouvez utiliser la commande suivante :
ConnectionManager modify <connection-id> --property MinTimeoutSeconds=60
Productivité générale
Définition du codage de fichier par défaut
Visual Studio vous permet désormais de définir le codage par défaut pour l'enregistrement des fichiers. Cette fonctionnalité garantit que votre encodage préféré est utilisé dans la mesure du possible.
Pour définir le codage par défaut, accédez à Outils > Options > Environnement > Documents. Vous y trouverez une option intitulée Enregistrer les fichiers avec le codage suivant.
Amélioration de la visibilité de la barre de défilement horizontale
La barre de défilement horizontale de l'éditeur se repositionne désormais de manière à être toujours accessible, même lorsque l'espace est limité. Vous pouvez personnaliser ce comportement à l'aide de l'option Outils > Options > Éditeur de texte > Avancé > Emplacement de la barre de défilement horizontale de l'éditeur.
Indentation du retour à la ligne
Vous pouvez désormais spécifier si les lignes qui s'enroulent dans l'éditeur doivent être indentées. Activez cette option à l'aide de l'option Outils > Options > Éditeur de texte > Général > Mettre automatiquement en retrait lorsque le retour à la ligne est activé.
Fichiers récents dans la recherche de code
Lorsque vous ouvrez Code Search sans requête, vous verrez une liste des fichiers que vous avez récemment consultés. Ceux-ci incluent les fichiers que vous avez ouverts par le biais de la recherche de code, mais aussi tous les autres fichiers que vous avez ouverts dans la solution. Il est ainsi facile de revenir à un fichier sur lequel vous avez travaillé récemment sans avoir à vous souvenir ou à taper le nom du fichier.
Navigation améliorée dans les lignes et les colonnes
Dans Code Search, Microsoft a amélioré les capacités de navigation par ligne. Les formats suivants sont désormais pris en charge :
- :ligne pour naviguer vers une ligne spécifique du document actif
- :ligne,colonne pour naviguer vers une ligne et une colonne spécifiques du document actif
- fichier:ligne pour naviguer vers une ligne spécifique d'un fichier spécifié
- fichier:ligne,colonne pour naviguer vers une ligne et une colonne spécifiques d'un fichier spécifié
- fichier(ligne) pour naviguer vers une ligne spécifique d'un fichier spécifié
- fichier(ligne,colonne) pour naviguer vers une ligne et une colonne spécifiques d'un fichier donné
Débogage et diagnostic
Instrumentation ciblée
L'outil d'instrumentation du profileur de Visual Studio prend désormais en charge l'instrumentation ciblée pour le code natif, ce qui vous permet de sélectionner des classes et des fonctions spécifiques en vue d'une analyse détaillée.
Pour accéder à cet outil, sélectionnez Débogage > Profileur de performance... > Instrumentation.
Couloirs de navigation à code couleur pour le profilage du processeur
L'outil d'utilisation du processeur du profileur Visual Studio prend désormais en charge l'analyse multiprocessus, en affichant des graphiques de performances avec un code couleur distinct pour chaque processus dans les couloirs de navigation.
Les graphiques sont affichés sous forme de diagrammes de surface empilés. Vous avez également la possibilité de filtrer les processus à l'aide d'une liste déroulante située en haut à gauche, ce qui permet de cibler l'analyse.
Outils Git
Ajout de commentaires sur les demandes d'extraction
Vous pouvez désormais ajouter de nouveaux commentaires aux fichiers de demandes d'extraction sur la branche vérifiée. Il s'agit de la dernière d'une série d'améliorations apportées à l'expérience des demandes d'extraction dans Visual Studio.
Activez les indicateurs de fonctionnalité Commentaires de demande d'extraction et Ajouter un commentaire de demande d'extraction dans Outils > Options > Environnement > Aperçu des fonctionnalités, extrayez n'importe quelle branche avec une demande d'extraction active et sélectionnez Afficher les commentaires dans les fichiers dans la barre d'information. Cela activera l'expérience des commentaires de demande d'extraction dans l'éditeur.
Revue des modifications avec Copilot
Vous pouvez désormais demander une revue de code à GitHub Copilot à partir de la fenêtre Git Changes.
Le modèle recherchera les problèmes potentiels et créera des commentaires à leur sujet :
Pour utiliser cette fonctionnalité, assurez-vous que les options suivantes sont activées :
- Outils > Options > Aperçu des fonctionnalités > Commentaires de demande d'extraction
- Outils > Options > GitHub > Copilot > Intégration du contrôle de source > Activer les fonctionnalités de prévisualisation de Git..
Afficher et gérer les balises Git
Vous pouvez maintenant voir et gérer les tags Git directement depuis la fenêtre du dépôt Git.
EDI
Préserver les préférences de police à travers les thèmes
Vos choix de police et de taille sont désormais conservés lorsque vous changez de thème dans Visual Studio. Les couleurs de vos polices restent liées au thème.
Cette fonctionnalité est activée par défaut. Si vous préférez le comportement précédent, désactivez l'option Outils > Gérer les fonctionnalités de prévisualisation > Séparer les paramètres de police de la sélection du thème de couleur.
Nouvelles méthodes de connexion à GitHub
Vous pouvez désormais vous connecter à votre compte GitHub soit à partir de la boîte de dialogue de configuration du premier lancement, soit à partir du bouton « Se connecter » dans Visual Studio.
Gestion de plusieurs comptes GitHub
Vous pouvez désormais gérer plusieurs comptes GitHub à partir de Visual Studio. Pour ce faire, cliquez sur Ajouter un autre compte dans le menu de la carte de profil accessible près des commandes de la fenêtre de Visual Studio, ou dans Fichier > Paramètres du compte. Si vous possédez plusieurs comptes GitHub, Visual Studio utilisera par défaut celui qui est marqué comme actif pour les fonctionnalités compatibles avec GitHub, telles que le contrôle de version et GitHub Copilot.
GitHub Copilot
GitHub Copilot Free
GitHub Copilot Free est désormais disponible. Vous bénéficiez gratuitement de 2 000 complétions de code et de 50 demandes de chat par mois.
Meilleures complétions de code avec l'IA pour C++
Les complétions de code de GitHub Copilot fournissent des suggestions d'autocomplétion en ligne pendant que vous codez. Pour améliorer l'expérience des développeurs C++, Microsoft a mis à jour GitHub Copilot pour inclure d'autres fichiers pertinents en tant que contexte. Cette amélioration permet de réduire les hallucinations tout en offrant des suggestions plus pertinentes et plus précises. Elle est alignée sur l'expérience actuelle de GitHub Copilot pour C++ dans VS Code.
GitHub Copilot Edits pour travailler sur plusieurs fichiers
GitHub Copilot Edits est une nouvelle fonctionnalité qui permet d'effectuer des modifications sur plusieurs fichiers de votre projet. Pour démarrer une nouvelle session d'édition, cliquez sur Créer une nouvelle session d'édition en haut de la fenêtre de discussion de GitHub Copilot.
Décrivez les modifications que vous souhaitez apporter, et Copilot vous suggérera les modifications appropriées. Vous pouvez alors les prévisualiser une par une et accepter celles que vous voulez ou faire des corrections.
Source : "What’s New for C++ Developers in Visual Studio 2022 17.13"
Et vous ?
Quel est votre avis sur ces améliorations ?
Pensez-vous que cette nouvelle version est crédible ou pertinente ?
Voir aussi :
Microsoft présente les mises à jour pour les développeurs C++ dans Visual Studio 2022 17.12, notamment des améliorations dans C++ Build Insights pour une meilleure qualité de vie
Les deux factions du C++ : la communauté est divisée entre ceux qui souhaitent un C++ moderne avec un meilleur outillage intégré et ceux qui veulent conserver le langage hérité
Microsoft Visual Studio : les nouvelles fonctionnalités les plus marquantes de 2024 qui augmentent la productivité et améliorent l'expérience de codage
Partager