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 !

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é

Le , par Jade Emy

10PARTAGES

5  0 
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 :

Code : Sélectionner tout
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 :

Code : Sélectionner tout
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 :

Code : Sélectionner tout
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 :

[CENTER][...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

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

Avatar de nirgal76
Membre chevronné https://www.developpez.com
Le 13/02/2025 à 17:32
Citation Envoyé par Jade Emy Voir le message
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.
C'est peu pour un mois. Ca tient plus de la démo que de l'outil utilisable.
1  0 

 
OSZAR »