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 !

Nouvelles fonctionnalités de C++ dans VC++ 2017 version 15.5 :
Environ 75 % des fonctionnalités C++ 17 déjà implémentées

Le , par Michael Guilloux

64PARTAGES

11  0 
Tout au long des versions 2015 et 2017 de Visual Studio, Microsoft s'est concentré la conformité aux normes C++, y compris l'implémentation des fonctionnalités C++ 17. Pour la cinquième mise à jour mineure de Visual Studio 2017 également, numérotée 15.5, Microsoft introduit encore de nombreuses améliorations allant dans ce sens. Avec cette version, le toolset MSVC a implémenté environ 75 % des fonctionnalités du langage C++ 17.

Les principales fonctionnalités qui ont été complètement implémentées dans le compilateur Visual C++ incluent :
  • les liaisons structurées avec une prise en charge dans le débogueur VS ;
  • les lambdas constexpr ;
  • if constexpr dans des modèles de fonction ;
  • les variables inline ;
  • les expressions de réductions (« fold expressions ») ;
  • l'ajout de noexcept au système de types ;
  • etc.

Toutes ces fonctionnalités peuvent être activées en utilisant l'option /std:c++17. Certaines ont été ajoutées dans VS 15.3 et finalisées dans VS 15.5. Il faut également noter que Microsoft a activé le mode de conformité /permissive- par défaut avec les nouveaux projets créés dans Visual C++, ce qui vous permet d'écrire du code beaucoup plus conforme aux normes C++. Ce mode désactive les constructions C++ non conformes qui existent dans MSVC depuis des années.

Parmi les changements notables dans l'implémentation de la bibliothèque standard, on note les variables inline pour la STL, la suppression de operator++ pour bool, la suppression du mot clé register déconseillé, la suppression des spécifications d'exception dynamique, la suppression du support d'allocateur dans std::function et les dépréciations de shared_ptr::unique() et <codecvt>, entre autres.

En outre, Microsoft a réalisé des progrès significatifs dans la correction des problèmes de conformité les plus anciens, y compris la fonctionnalité SFINAE pour les expressions et la majorité des cas de recherche de noms en deux phases. En ce qui concerne les spécifications techniques actuelles, il a aussi été apporté des changements de syntaxe, comme demandé par le Comité des normes C++.

En raison du nombre d'améliorations de conformité et de corrections de bogues inclus dans le toolset MSVC livré avec VS2017 version 15.5, le numéro de version passe de 14.11 à 14.12. Cette incrémentation de version mineure indique que le toolset MSVC dans VS2017 est compatible avec celui de VS2015, ce qui permet donc une mise à niveau plus facile pour les utilisateurs VS2015.

Source : Blog Visual C++

Et vous ?

Qu’en pensez-vous ?

Voir aussi :

La version 15.5 de Visual Studio 2017 améliore le chargement des solutions C# et VB, qui est désormais deux fois plus rapide qu'avant
Microsoft propose une compilation des fonctionnalités de C++ 17 dans la préversion Visual C++ 2017 version 15.3 et indique celles qui sont à venir

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

Avatar de Matthieu76
Membre éclairé https://www.developpez.com
Le 09/05/2018 à 10:08
Je trouve quand même cela bizarre que toutes les fonctionnalités de C++11 ne soit toujours pas toutes implémentées 7 ans après !
3  0 
Avatar de Médinoc
Expert éminent sénior https://www.developpez.com
Le 09/05/2018 à 11:59
Citation Envoyé par Matthieu76 Voir le message
Je trouve quand même cela bizarre que toutes les fonctionnalités de C++11 ne soit toujours pas toutes implémentées 7 ans après !
Il leur a bien fallu 15 ans pour C99 (mais ça c'était un choix conscient de s'asseoir dessus)...
2  0 
Avatar de camboui
Membre éprouvé https://www.developpez.com
Le 11/12/2017 à 14:33
La mise à jour 15.5 est officielle depuis le 5 décembre je crois

Au boulot on ne peut pas utiliser Visual Studio 2017, je suis coincé à VS2015 pour l'instant.
Mais il y a des nugets VisualCppTools qui intégrent les derniers toolsets de VS2017 utilisables sous VS2015.
Exemple du toolset dispo avec la mise à jour 15.4 de VS2017 utilisable sous VS2015:
https://www.nuget.org/packages/Visua....VS2017Layout/

J'espère qu'ils vont faire de même pour la 15.5.
1  0 
Avatar de Matthieu76
Membre éclairé https://www.developpez.com
Le 09/05/2018 à 12:03
Après il faut relativiser, de mon côté j'ai un très gros projet et il compile aussi bien sous MSVC que sous MinGW, je pense que je n'utiliserai probablement jamais la plupart des fonctionnalités qu'ils ont mit du temps à implémenter. Et puis si implémenter une petite fonctionnalité que quasiment personne n'utilise rallonge le temps de compilation de 10% je pourrais comprends qu'ils y soient un peu réticent.

Pour ma part je n'ai rien vu qui pourrait m'être fondamentalement utile dans C++17.
1  0 
Avatar de archqt
Membre confirmé https://www.developpez.com
Le 09/05/2018 à 11:48
Citation Envoyé par Matthieu76 Voir le message
Je trouve quand même cela bizarre que toutes les fonctionnalités de C++11 ne soit toujours pas toutes implémentées 7 ans après !
Avant que la norme ne "tombe" ils avaient les "drafts" et certains éléments allaient rentrer dans la norme donc sur le fait, ils ont eux plus que 7 années pour le faire. J'ai pas regardé mais est ce que les autres compilateurs gcc/clang implémentent toute la norme ? je suppose que OUI, sachant que Microsoft a toujours eu la réputation d'avoir du retard.
MAIS ils semblerait que depuis quelques années ils se disent que cela vaudrait le coup de ne pas être en retard, voire de participer à des projets OpenSource
1  1 
Avatar de TawalMc
Membre à l'essai https://www.developpez.com
Le 06/09/2018 à 14:42
Oh je trouve cela cool . J'ai éssayé d'utiliser quelques fonctionnalités de C++11 sous Code-Block 16.02 et j'ai de belles erreurs.
Au passage , Eclipse CDT supporte il la norme C++11 ou 14?? Si oui quelle version , peut etre que je suis Vieiilot
0  0