[19196] in Kerberos_V5_Development
C99 Features
daemon@ATHENA.MIT.EDU (Nathaniel McCallum)
Mon Jun 15 21:07:17 2015
Message-ID: <1434416799.14412.24.camel@redhat.com>
From: Nathaniel McCallum <npmccallum@redhat.com>
To: krbdev@mit.edu
Date: Mon, 15 Jun 2015 21:06:39 -0400
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krbdev-bounces@mit.edu
It has been 16 years. GCC has had support for many C99 features for a
LongTimeNowTM. Clang has had them since the beginning. Clang also now
has official Windows builds (as well as many other platforms).
Of course, MSVC still lags behind. However, they have started
implementing features, including the following since MSVC 2013 [1]:
* _Bool
* Compound literals
* Designated initializers
* Mixing declarations with code
MS has also implemented most of the C99 libraries[2] and has already
announced complete support for the C99 standard library in MSVC
2015[3]. One of the big elephants in the room is VLAs. MS is unlikely
to ever support them. But, it is also MS's stated policy to only
incorporate C features that are required for C++[4]. I'm not sure that
MIT should hold back support for new C features because MS only wants
to ship a C++ compiler.
So how about it? Can MIT start using C99 features? Even a subset of the
features would be helpful. I particularly care about all the above C99
features that MS implemented plus VLAs. The latter, in particular, can
eliminate a lot of heap allocations.
Nathaniel
[1] http://blogs.msdn.com/b/vcblog/archive/2013/06/28/c-11-14-stl
-features-fixes-and-breaking-changes-in-vs-2013.aspx
[2] http://blogs.msdn.com/b/vcblog/archive/2013/07/19/c99-library
-support-in-visual-studio-2013.aspx?PageIndex=2
[3] http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17
-features-in-vs-2015-preview.aspx
[4] http://blogs.msdn.com/b/vcblog/archive/2015/04/29/c-11-14-17
-features-in-vs-2015-rc.aspx
_______________________________________________
krbdev mailing list krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev