Reconsider position on c99/11
This has been declined before. However, I feel that Microsoft should look at this again to be more in parity with other operating systems.
A lot of C code is still in use in many places for numerical code. These libraries also tend to be unix only making windows a second class citizen.
Consider that gcc and clang, available on Linux and OSX, both provide a competitive c++ compiler as well as a c compiler. This puts windows developers for numeric tools at a disadvantage if they want to stick to using VS. ICC is available at an expense but with the community edition of VS available it would make sense to at least bring parity to the other OSs. A lot of good work is being done in C which either requires mingw or to switch to Linux. Proper C support would at least help make those who want to stick with windows's lives easier.
@Visual Studio Team,
I need C99 for having portable C code between Windows / Linux / macOS.
For instance the use of `restrict`.
Yes, it can be bypassed with Macros bu what about just having C99 as first class citizen with strict support?
It will be appreciated.
Andrew Pardoe [MSFT] commented
The MSVC team plans to achieve C conformance but we are first very focused on completing our C++ conformance work.
We have done some C99 conformance work, most notably C99 _Bool, compound literals, C99 designated initializers, and variable declaration a couple of years back. More recently as we've implemented C++ features that resemble C features we have also implemented their C counterparts.
Lastly, we have started to implement a conforming preprocessor for both C++ and C conformance.
I can't comment on a timeline for C conformance, but we have heard this request. Thank you!
Also, please see this request for VLAs, though I'd prefer that users upvote this more general suggestion than a VLA-specific suggestion: https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/11580261-support-c99-variable-length-arrays
Jeff Hammond commented
designated initializers for struct, complex numbers (i.e. complex.h) and VLAs.
Hi, thanks for the feedback.
Can you share specific examples of scenarios where our existing c99 support is insufficient? It would help us better understand the challenges developers face.