Visual C++ renforce son support des standards C++
Microsoft sort une Preview du compilateur avec des progrès pour C++11 et C++14

Le , par Hinault Romaric, Responsable .NET
Microsoft veut rendre son compilateur Visual C++ conforme aux standards C++. En juillet dernier, la société avait dévoilé sa feuille de route pour la prise en charge de C99, C++11 et C++14 dans son environnement de développement.

La firme s’est engagée lors de l’événement GoingNative 2013, dédié au monde du C++, à publier des préversions CTP (customer technology preview) du compilateur C++ avec les évolutions dans la prise en charge de C++ 11 et C++ 14, avant intégration dans Visual Studio.


Conformément à cet engagement, Microsoft vient de publier une préversion du compilateur Visual C++, qui est disponible en téléchargement et apporte les caractéristiques C++11, C++14 et C++/CX suivantes :

  • les opérateurs de conversion explicite ;
  • les qualificatifs de référence sur les fonctions membres ;
  • les fonctions d’initialisation statiques locales ;
  • l’héritage des constructeurs ;
  • alignof/alignas ;
  • __func_ ;
  • Extended sizeof ;
  • constexpr (sauf pour les “member functions”) ;
  • noexcept (unconditional) ;
  • C++14 decltype(auto) ;
  • C++14 auto function return type deduction ;
  • a
  • C++14 generic lambdas


Le compilateur fonctionne uniquement avec Visual Studio 2013 ou sa version gratuite « Desktop Express ». Microsoft précise que c’est une préversion qui ne doit pas être utilisée dans un environnement de production.

Télécharger Visual C++ Compiler November 2013 CTP

Télécharger Visual Studio Express 2013 pour Windows Desktop

Source : blog MSDN

Et vous ?

Que pensez-vous de l’engagement de Microsoft à supporter les standards C++ ?

Utilisez-vous les outils de la société pour vos développements C++ ?

Quelles autres fonctionnalités de C++14 aimeriez-vous que Microsoft prenne en charge ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de germinolegrand germinolegrand - Membre expert https://www.developpez.com
le 20/11/2013 à 12:37
Ils ont annoncé explicitement ne pas vouloir supporter le C99. Ce ne sont que des "client's feature requests" pour ce qu'ils ont fait.
Voir http://cpp.developpez.com/actu/64246...C-11-C-14-C99/ dans la vidéo source, c'est indiqué en haut à gauche des slides de présentation ("This is not an attempt to conform C99").
Avatar de Markand Markand - Membre actif https://www.developpez.com
le 20/11/2013 à 16:52
Je ne comprends vraiment pas ce qu'ils ont envers C99 pour ne pas vouloir l'implémenter.
Avatar de Médinoc Médinoc - Expert éminent sénior https://www.developpez.com
le 20/11/2013 à 17:28
Apparemment, ils n'ont pas le temps de tout faire.
Avatar de Markand Markand - Membre actif https://www.developpez.com
le 21/11/2013 à 8:30
Citation Envoyé par Médinoc  Voir le message
Apparemment, ils n'ont pas le temps de tout faire.

Je pense plutôt qu'ils boudent le C. De toute façon c'est simple, par défaut VisualStudio ne propose que la création de fichier "C++ File". Il suffit de changer l'extension pour le compiler en C, mais IntelliSense n'en fait pas pour autant en surlignant toutes les lignes non compatible C++ telles que retour de malloc non casté, etc.

Ils disent vraiment ne pas vouloir implémenter le C99, mais à mon avis, le C99 est bien plus simple à implémenter que le C++11 et depuis 1999, je pense que s'ils l'avaient vraiment voulu, ils auraient pu le temps de l'implémenter.

Je pense juste que Microsoft oriente plutôt ces développeurs à utiliser C++ putôt que C. Je pense qu'il est évident que C++ est plus adapté à une grosse application moderne, mais le C peut encore servir notamment à la programmation système et drivers.
Avatar de Traroth2 Traroth2 - Expert éminent sénior https://www.developpez.com
le 21/11/2013 à 11:59
Citation Envoyé par Markand  Voir le message
Je pense qu'il est évident que C++ est plus adapté à une grosse application moderne

Non seulement ce n'est pas "évident", mais ce n'est pas vrai.
Avatar de Médinoc Médinoc - Expert éminent sénior https://www.developpez.com
le 21/11/2013 à 12:16
Franchement si, je pense que C++ est mieux adapté que C pour ça.
Ne serait-ce que pour les destructeurs et tout ce qui en découle (pointeurs intelligents etc.). Plus une application grossit, plus il devient difficile d'en gérer la mémoire manuellement.
Avatar de JolyLoic JolyLoic - Rédacteur/Modérateur https://www.developpez.com
le 21/11/2013 à 20:08
Citation Envoyé par Markand  Voir le message
Je pense plutôt qu'ils boudent le C.

Je pense qu'une entreprise agit généralement sur des avis plus sérieux et posés qu'une simple bouderie...
Citation Envoyé par Markand  Voir le message
Ils disent vraiment ne pas vouloir implémenter le C99, mais à mon avis, le C99 est bien plus simple à implémenter que le C++11 et depuis 1999, je pense que s'ils l'avaient vraiment voulu, ils auraient pu le temps de l'implémenter.

Même s'il est plus simple, le coût d'implémentation n'est pas nul. Chaque fonctionnalité C en plus aurait été faite au détriment d'une fonctionnalité C++. Et ils voient bien plus d'intérêt dans le C++ que dans le C pour leur plate-forme.
Citation Envoyé par Markand  Voir le message
Je pense qu'il est évident que C++ est plus adapté à une grosse application moderne, mais le C peut encore servir notamment à la programmation système et drivers.

Cette phrase peut se comprendre de deux manières :
- Le C++ est plus adapté que le C pour développer une grosse application. Je suis d'accord.
- C'est uniquement dans le domaine des grosses applications que le C++ est plus adapté que le C. Là, je ne suis pas d'accord. Même pour de la programmation système et driver, je privilégierais le C+++ au C (certainement en désactivant certains aspects, comme le RTTI ou les exceptions), si sur les plate-formes visées je dispose d'un compilateur C++ de qualité.
Avatar de Markand Markand - Membre actif https://www.developpez.com
le 22/11/2013 à 8:11
Oui, c'est d'ailleurs ces deux seuls points qui me faisait pencher pour C plutôt que C++ pour les drivers juste à cause de ça. Je ne savais pas que désactiver les exceptions était possible. C'est quelque chose de standardisé ?
Avatar de KsassPeuk KsassPeuk - Membre actif https://www.developpez.com
le 22/11/2013 à 10:30
En n'utilisant que du code noexcept, tu n'auras pas d'exception ^^ .
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 22/11/2013 à 18:11
Citation Envoyé par Markand  Voir le message
Oui, c'est d'ailleurs ces deux seuls points qui me faisait pencher pour C plutôt que C++ pour les drivers juste à cause de ça. Je ne savais pas que désactiver les exceptions était possible. C'est quelque chose de standardisé ?

Je ne crois pas (je n'ai pas verifie) que la desactivation elle meme est definie par le standard, mais rien n'empeche une implementation (un compilateur) de fournir des options de desactivations.

A ce que je sache, tous les compilateurs actuels (et meme precedents) fournissent de tels options. Auparavant il y en avait meme qui ne fournissaient simplement pas ces features, parcequ'ils etaient designe pour des plateformes pour lesquels il n'y avait aucun interet.
Offres d'emploi IT
Ingénieur développement fpga (traitement vidéo) H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY
Architecte systèmes études & scientifiques H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)
Ingénieur analyste programmeur (H/F)
Safran - Auvergne - Montluçon (03100)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil