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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Microsoft annonce la conformité de MSVC à la norme C++


Sujet :

Visual C++

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut Microsoft annonce la conformité de MSVC à la norme C++
    Nouvelles fonctionnalités de C++ dans VC++ 2017 version 15.5
    environ 75 % des fonctionnalités C++ 17 déjà implémentées

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    1 110
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Points : 937
    Points
    937
    Par défaut
    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.

  3. #3
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut Microsoft annonce la conformité de MSVC à la norme C++
    Microsoft annonce la conformité de MSVC à la norme C++
    avec une implémentation complète de presque toutes les fonctionnalités de C++11 à C++17

    Avec Visual Studio 15.5, Microsoft avait déjà implémenté environ 75 % des fonctionnalités C++17, mais c'était il y a cinq mois. Alors que Microsoft vient d'annoncer la sortie de la septième mise à jour mineure de Visual Studio 2017 (version 15.7), le géant du logiciel explique que le compilateur C++ MSVC est désormais (presque) entièrement conforme à la norme C++. Et cela inclut non seulement C++17, mais également C++11 et C++14.

    « Avec Visual Studio 2017 version 15.7, nous proposons une implémentation complète de presque toutes les fonctionnalités de la norme C++, y compris toutes les versions jusqu'à C++ 17. Les fonctionnalités restantes ont été implémentées (et seront livrées bientôt) ou sont en train d'être implémentées aujourd'hui », explique Microsoft dans un billet de blog. Et de préciser que « cela inclut la finalisation de certaines des fonctionnalités les plus difficiles sur lesquelles [la société] a travaillé depuis C++ 11/14 : recherche de noms en deux phases, expression SFINAE, constexpr étendues et extensions de pack. »

    Dans cette version notamment, l'implémentation MSVC de la bibliothèque standard a acquis de nouvelles fonctionnalités majeures, à savoir les algorithmes parallèles, filesystem, constexpr pour char_traits, les fonctions mathématiques spéciales et la prise en charge de la déduction d’arguments de modèle de classe. Microsoft travaille également sur l'implémentation de nombreuses spécifications techniques de C++. Il s'agit de spécifications en cours de développement et qui devraient être intégrées à la norme. Ci-dessous l'état de la conformité de MSVC à la norme C++ :


    Il faut toutefois noter qu'il y a des bogues dans certaines fonctionnalités que Microsoft travaille à corriger actuellement. Si vous voulez tester les nouvelles fonctionnalités C++17 implémentées, vous devez télécharger Visual Studio 2017 version 15.7 et avoir en tête que vous devrez souvent utiliser le mode de conformité /permissive- ainsi que le commutateur /std:c++17 ou /std:c++latest selon le cas.

    Source : Blog Visual C++

    Et vous ?

    Qu'en pensez-vous ?
    Avez-vous déjà commencé à tester les fonctionnalités C++17 implémentées dans VS 15.7 depuis les préversions ?

    Voir aussi :

    Microsoft annonce la disponibilité de Visual Studio 2017 version 15.7 : un tour d'horizon des nouveautés de l'EDI
    Microsoft annonce un gestionnaire de bibliothèques C++ unique pour Linux, macOS et Windows : Vcpkg est maintenant disponible sur tous les OS
    Évolution de C++ : petite revue des fonctionnalités existantes du langage qui ont été supprimées de C++ 17 et celles qui ont été ajoutées
    Clang est maintenant utilisé pour compiler Chrome pour Windows, Google abandonne donc Visual C++ et en voici les raisons
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  4. #4
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Points : 890
    Points
    890
    Par défaut
    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 !

  5. #5
    Membre émérite
    Profil pro
    retraité
    Inscrit en
    Décembre 2010
    Messages
    806
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 806
    Points : 2 306
    Points
    2 306
    Par défaut C'est même plus que cela
    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

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    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)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre éclairé Avatar de Matthieu76
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mars 2013
    Messages
    568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 568
    Points : 890
    Points
    890
    Par défaut
    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.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Mai 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mai 2017
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    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

Discussions similaires

  1. Fonctionnalités de C++ 17 dans la préversion Visual C++ 2017 version 15.3
    Par Stéphane le calme dans le forum Visual C++
    Réponses: 0
    Dernier message: 17/05/2017, 14h41
  2. Réponses: 16
    Dernier message: 11/02/2017, 13h19
  3. Nouvelle fonctionnalité forum : recherche dans les messages privés
    Par Anomaly dans le forum Evolutions du club
    Réponses: 5
    Dernier message: 07/03/2014, 15h26
  4. Nouvelles fonctionnalités C# 4 dans SL4?
    Par chrisdot dans le forum Silverlight
    Réponses: 6
    Dernier message: 08/05/2010, 10h06
  5. les nouvelles fonctionnalités dans office2007
    Par sky88 dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 13/05/2009, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo