Visual Studio support for new C / C++ standards?

I maintain reviewing C99 and also C+npls 11 and also all these entirely pleasant points that are obtaining included in the language criterion that could be wonderful to make use of sooner or later. Nonetheless, we presently rot in the land of creating C+npls in Visual Studio.

Will any one of the new things in the typical ever before get included in visual studio, or is Microsoft extra curious about including new C# versions to do that?

Edit: In enhancement to the approved solution, I located the Visual C+npls group blog:

And also especially, this blog post in it:

Really valuable. Many thanks!

2022-07-25 20:39:43
Source Share
Answers: 3

Herb Sutter is the chairman of the ISO C+npls criteria body as well as additionally benefits Microsoft. I do not find out about the Visual Studio C typical - mostly due to the fact that I never ever make use of simple C - yet Microsoft makes certain attempting to push the new C+npls typical onward. Proof of this is - like OregonGhost stated - the TR1 that is consisted of in the most up to date Visual Studio Service Release.

2022-07-25 21:44:48

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:

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.

  • Most interesting C99 features are already present in C++ (inlining, variable declaration anywhere, // comments, etc.) and probably already usable in C in Visual Studio (If only doing C code within the C++ compiler). See my answer for a more complete discussion about C99 features in C++.
  • C99 increases the divergence between C and C++ by adding features already existing in C++, but in an incompatible way (sorry, but the boolean complex implementation in C99 is laughable, at best... See for more information)
  • The C community on Windows seems non-existent or not important enough to be acknowledged
  • The C++ community on Windows seems too important to be ignored
  • .NET is the way Microsoft wants people to program on Windows. This means C#, VB.NET, perhaps C++/CLI.

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?


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:

Still, the last comment at: is clear enough, I guess.

Edit 2012-05-03

Herb Sutter made it clear that:

  1. Our primary goal is to support "most of C99/C11 that is a subset of ISO C++98/C++11."
  2. We also for historical reasons ship a C90 compiler which accepts (only) C90 and not C++
  3. We do not plan to support ISO C features that are not part of either C90 or ISO C++.

The blog post add links and further explanations for those decisions.


2022-07-25 21:39:47

MSVC assistance for C is however really doing not have. It just sustains the section of C99 that is a part of C+npls which suggests that, as an example, it is literally difficult to compile ffmpeg or its libav * collections in MSVC, due to the fact that they make use of several C99 attributes such as called struct components. This is intensified by the reality that libavcodec additionally calls for a compiler that keeps pile placement, which MSVC does not.

I work with x264, which unlike ffmpeg does make an initiative to sustain MSVC, though doing so has actually usually been a problem per se. It does not keep pile placement also if you clearly pass the highest possible function call via a specific setting up - based pile placement function, so all operates that call for a straightened pile need to be impaired. Its additionally been really aggravating that I can not make use of vararrays either ; probably this is for the very best, given that evidently GCC greatly pessimizes them efficiency - sensible.

2022-07-25 20:52:21