I keep reading about C99 and C++11 and all these totally sweet things that are getting added to the language standard that might be nice to use someday. However, we currently languish in the land of writing C++ in Visual Studio.
Will any of the new stuff in the standard ever get added to visual studio, or is Microsoft more interested in adding new C# variants to do that?
Edit: In addition to the accepted answer, I found the Visual C++ team blog:
And specifically, this post in it:
http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx
Very useful. Thanks!
Microsoft has never expressed any real interest in keeping up-to-speed with the c99-standard (which is getting old by now). Sad for C-programmers, but I suspect that Microsoft cares more for the C++-community.
The Visual C++ team did put out a table of C++0x features that the 2010 release supports at http://blogs.msdn.com/b/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx. Since there can be a lag time between the spec and the implementation, that seems pretty reasonable. Wikipedia has a nice article about the spec. It's not finished at the time I'm writing this.
MS has a series of public replies to this, most of them blaming their users. Like this one:
http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=345360
This is a pretty sad state of affairs, but also makes sense if you suspect MS wants to lock users in: it makes it very hard to port modern gcc-based code into MSVC, which at least I find extremely painful.
A workaround exists, though: Note that Intel is much more enlightened on this. the Intel C compiler can handle C99 code and even has the same flags as gcc, making it much easier to port code between platforms. Also, the Intel compiler works in visual studio. So by scrapping MS COMPILER you can still use the MS IDE that you seem to think has some kind of value, and use C99 to your hearts content.
A more sensible approach is honestly to move over to Intel CC or gcc, and use Eclipse for your programming environment. Portability of code across Windows-Linux-Solaris-AIX-etc is usually important in my experience, and that is not at all supported by MS tools, unfortunately.
Herb Sutter is both the chair and a very active member of C++ standardisation comitee, as well as software architect on Visual Studio for Microsoft.
He is among the author of the new C++ memory model standardised for C++0x. For example, the following papers:
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
have his name on it. So I guess the inclusion on Windows of C++0x is assured as long as H. Sutter remains at Microsoft.
As for C99 only partly included in Visual Studio, I guess this is a question of priorities.
booleancomplex implementation in C99 is laughable, at best... See http://david.tribble.com/text/cdiffs.htm for more information)So, would I be Microsoft, why would I implement features few people will ever use when the same features are already offered in more community active languages already used by most people?
Conclusion?
C++0x will be included, as extention of VS 2008, or on the next generation (generations?) of Visual Studio.
The C99 features not already implemented won't be in the next years, unless something dramatic happens (a country full of C99 developers appears out of nowhere?)
Edit 2011-04-14
Apparently, the "country full of C99 developers" already exist: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6415401
^_^
Still, the last comment at: http://blogs.msdn.com/vcblog/archive/2007/11/05/iso-c-standard-update.aspx#6828778 is clear enough, I guess.
Edit 2012-05-03
Herb Sutter made it clear that:
The blog post add links and further explanations for those decisions.
Source: http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/
Herb Sutter is the chairman of the ISO C++ standards body and also works for Microsoft. I don't know about the Visual Studio C standard - mainly because I never use plain C - but Microsoft is sure trying to push the new C++ standard forward. Evidence of this is - like OregonGhost mentioned - the TR1 that is included in the latest Visual Studio Service Release.
The Visual C++ Bloq provides a lot of information on several interesing points regarding the support of C++11 in VC++11, including several tables
Visual C++ Team Blog, C++11 Features in Visual C++ 11