lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Thu, May 23, 2013 at 11:45:35PM +0100, Craig Barnes wrote:
> On 23 May 2013 23:19, Roberto Ierusalimschy <roberto@inf.puc-rio.br> wrote:
> > >From http://msdn.microsoft.com/en-us/library/vstudio/bb384838.aspx
> > (a site from Microsoft):
> >
> >   "Visual Studio 2012
> >   Visual Studio includes a C compiler that you can use to create
> >   everything from basic C programs to Windows API applications."
> >
> > In my eyes, it seems they do claim to support C.
> >
> > -- Roberto
> >
> 
> Ah, thanks for clearing that up. I was thinking the whole time that
> MSVC did claim to support C, although it was stated so vehemently
> that I started to question myself.

They support C95, but have publicly stated they have no intention to ever
support C99, C11, or any newer C standard. For all intents and purposes,
their C compiler is dead. Their C95 support is complete, so all they do is
make sure nothing breaks.

Occassionaly you do see C99-like features, such as variable argument macros,
the __restrict qualifier, and most recently stdint.h, but these come via
their inclusion in the C++ standard. And sadly C++ has declined to adopt
most of what's new in C99 and C11, including named initializers or compound
literals. In fact, the specifications for <stdbool.h> clash, and C++ refused
to even support the _Bool type native to C.

Basically, C and C++ have diverged. Microsoft knows this, and has basically
chosen to abandon C, though maintaining backward compatability for older
code.