Herb Sutter est à la fois le président et un membre très actif du comité de normalisation C++, ainsi qu'architecte logiciel sur Visual Studio pour Microsoft.
Il est notamment l'auteur du nouveau modèle de mémoire C++ standardisé pour C++0x. Par exemple, les articles suivants :
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2669.htm
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2197.pdf
ont son nom dessus. Je suppose donc que l'inclusion de C++0x dans Windows est assurée tant que H. Sutter reste chez Microsoft.
Quant au fait que C99 ne soit que partiellement inclus dans Visual Studio, je suppose que c'est une question de priorités.
- La plupart des fonctionnalités intéressantes de C99 sont déjà présentes en C++ (inlining, déclaration de variables n'importe où, // commentaires, etc.) et probablement déjà utilisables en C dans Visual Studio (si l'on ne fait que du code C dans le compilateur C++). Voir ma réponse aquí pour une discussion plus complète sur les fonctionnalités de C99 dans C++.
- Le C99 accroît la divergence entre le C et le C++ en ajoutant des fonctionnalités qui existent déjà dans le C++, mais de manière incompatible (désolé, mais les
boolean L'implémentation complexe en C99 est risible, au mieux... Voir http://david.tribble.com/text/cdiffs.htm pour plus d'informations)
- La communauté C sous Windows semble inexistante ou pas assez importante pour être reconnue.
- La communauté C++ sur Windows semble trop importante pour être ignorée
- .NET est la façon dont Microsoft veut que les gens programment sous Windows. Cela signifie C#, VB.NET, peut-être C++/CLI.
Alors, serais-je Microsoft, pourquoi implémenter des fonctionnalités que peu de gens utiliseront jamais alors que les mêmes fonctionnalités sont déjà offertes dans des langages plus actifs au niveau de la communauté et déjà utilisés par la plupart des gens ?
Conclusion ?
C++0x sera inclus, comme extension de VS 2008, ou sur la prochaine génération (générations ?) de Visual Studio.
Les fonctionnalités de C99 qui n'ont pas encore été implémentées ne le seront pas dans les prochaines années, à moins que quelque chose de dramatique ne se produise (un pays rempli de développeurs C99 apparaît de nulle part ?)
Edition 2011-04-14
Apparemment, le "pays plein de développeurs C99" existe déjà : http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6415401
^_^
Quand même, le dernier commentaire à : http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6828778 est assez clair, je suppose.
Edition 2012-05-03
Herb Sutter l'a clairement dit :
- Notre objectif principal est de supporter "la plus grande partie de C99/C11 qui est un sous-ensemble de ISO C++98/C++11".
- Pour des raisons historiques, nous fournissons également un compilateur C90 qui accepte (uniquement) C90 et non C++.
- Nous ne prévoyons pas de prendre en charge les fonctionnalités de l'ISO C qui ne font pas partie du C90 ou de l'ISO C++.
Le billet de blog ajoute des liens et des explications supplémentaires pour ces décisions.
Source : http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/
3 votes
Je ne comprends pas ce que vous avez trouvé d'utile dans l'article 2008/02 de vcblog, car les fonctionnalités qui y sont décrites existent depuis longtemps dans boost et sont assez bien connues. Les fonctionnalités de C++0x qui ont changé le monde sont différentes : fonctions lambda, initialisateurs, etc. listées à fr.wikipedia.org/wiki/C%2B%2B0x .
0 votes
Ver blogs.msdn.com/vcblog/archive/2009/04/22/ article récent aussi (je sais qu'il est postérieur au moment où la question a été posée)
1 votes
Cela a été grandement amélioré dans les versions récentes de Visual Studio, comme la mise à jour 2 de 2015 : visualstudio.com/fr/news/vs2015-update2-vs.aspx#Cdoubleplus
0 votes
Envisagez d'essayer MinGW-64