C++11/14 Features In Visual Studio 14 CTP3

C++11/14 Features In Visual Studio 14 CTP3

Rate This
  • Comments 62

Visual Studio 14 CTP3 is now available, with support for C++11 thread_local, C++11 quick_exit/at_quick_exit, and C++14 sized deallocation.  For reference, here's an updated table.  (Previous tables: VS 2008 and VS 2010, VS 2010 and VS 2012, VS 2013 and the Nov 2013 CTP (i.e. VS14 CTP0), VS 2013 and VS14 CTP1.  "CTP" stands for "Community Technology Preview" and means "alpha".)

 

C++11 Core Language Features

VS 2013

VS14 CTP3

Rvalue references

Partial

Yes

ref-qualifiers

No

Yes

Non-static data member initializers

Yes

Yes

Variadic templates

Yes

Yes

Initializer lists

Yes

Yes

static_assert

Yes

Yes

auto

Yes

Yes

Trailing return types

Yes

Yes

Lambdas

Yes

Yes

decltype

Yes

Yes

Right angle brackets

Yes

Yes

Default template args for function templates

Yes

Yes

Expression SFINAE

No

No

Alias templates

Yes

Yes

Extern templates

Yes

Yes

nullptr

Yes

Yes

Strongly typed enums

Yes

Yes

Forward declared enums

Yes

Yes

Attributes

No

No

constexpr

No

Partial

Alignment

Partial

Yes

Delegating constructors

Yes

Yes

Inheriting constructors

No

Yes

Explicit conversion operators

Yes

Yes

char16_t and char32_t

No

No

Unicode string literals

No

No

Raw string literals

Yes

Yes

Universal character names in literals

No

No

User-defined literals

No

Yes

Standard-layout and trivial types

Yes

Yes

Defaulted and deleted functions

Partial

Yes

Extended friend declarations

Yes

Yes

Extended sizeof

No

Yes

Inline namespaces

No

Yes

Unrestricted unions

No

Yes

Local and unnamed types as template args

Yes

Yes

Range-based for-loop

Yes

Yes

override and final

Yes

Yes

Minimal GC support

Yes

Yes

noexcept

No

Yes

C++11 Core Language Features: Concurrency

VS 2013

VS14 CTP3

Reworded sequence points

N/A

N/A

Atomics

Yes

Yes

Strong compare and exchange

Yes

Yes

Bidirectional fences

Yes

Yes

Memory model

N/A

N/A

Data-dependency ordering

Yes

Yes

Data-dependency ordering: attributes

No

No

exception_ptr

Yes

Yes

quick_exit and at_quick_exit

No

Yes

Atomics in signal handlers

No

No

Thread-local storage

Partial

Yes

Magic statics

No

Yes

C++11 Core Language Features: C99

VS 2013

VS14 CTP3

__func__

Partial

Yes

C99 preprocessor

Partial

Partial

long long

Yes

Yes

Extended integer types

N/A

N/A

C++14 Core Language Features

VS 2013

VS14 CTP3

Tweaked wording for contextual conversions

No

No

Binary literals

No

No

auto and decltype(auto) return types

No

Yes

init-captures

No

Yes

Generic lambdas

No

Partial

Variable templates

No

No

Extended constexpr

No

No

NSDMIs for aggregates

No

No

Avoiding/fusing allocations

No

No

[[deprecated]] attributes

No

No

Sized deallocation

No

Yes

Digit separators

No

No

 

Also, here's a slide from Herb Sutter outlining what's likely to ship in VS14 RTM (which, as a reminder, is scheduled for 2015):

 

 

Stephan T. Lavavej

Senior Developer - Visual C++ Libraries

stl@microsoft.com

  • The Nov 2013 CTP shows "C++TS? await" as partial, what's missing?

  • char16_t and char32_t would be great!

  • It seems such a shame that VC++ developers have to wait a full release cycle for new features to be available, compared to the quick release cycle of the open source compilers.

    Good work nonetheless. Hope to see more green soon.

    (I'd also like more detail when the tables state "partial", maybe a footnote would be appropriate).

  • Great, good job. Is there any date we can expect VS 2014 to be released?

  • horeaper: I've asked the dev working on await to comment (I know very little about the feature).

    Rob G: We're releasing these alphas at a higher frequency than before. You can help us by trying them out and reporting any issues you find - it's way easier to fix bugs now, compared to right before RTM.

    See blogs.msdn.com/.../c-11-14-feature-tables-for-visual-studio-14-ctp1.aspx for detailed explanations of the Partial entries.

    Kris: 14 is a version number, not a year. VS14 RTM is planned for 2015.

  • horeaper: re: await (partial) in Nov 2013 CTP

    await that we shipped in Nov 2013 CTP had several limitations:

    1. It was only working with non-standard concurrency::task type

    2. It was using windows fibers in its implementation that limited its scalability and interoperability

    In VS14 we are addressing these limitations and submitting an updated proposal for C++TS.

  • This is idiotic and insulting in the extreme. There is no reason to tie the IDE to the C++ compiler. Your customers KNOW you are lying when you claim a tight tie between the IDE and the C++ compiler. Even more insulting is how oblivious you are to the impact of changing everything rather than just the compiler. Then again, you all live in a very weird cocoon divorced from reality.

  • Amazing work guys !

    Keep on going, it looks amazing.

    Inherited ctors is very useful

  • Thanks for the update. Good to see things progressing steadily.

  • Thank you

    How about C features? Is there a similar list for C99 and C11 too?

  • @Joe:

    Customers can't know VC team is lying, because there is no lie. Or present evidence. Same would go for anybody claiming "lies".

  • Can you please confirm if this issue is fixed: connect.microsoft.com/.../c99-visual-studio-2013-update-3-fixed-1-2-of-the-union-issue

  • Installed 2014 and tested, it still exists!!!!!!!!!!! PLEASE fix it.

    Thanks for setting the version number straight! (no-more-one-version-lag like VS2013's directory was VC12... now 14 is 14 please don't mess with it)

  • @STL,

    Can you please briefly explain the difference between "Standard Library features" and "Core Language features", which of them supersedes the other and at what point we can say certain version of language is fully supported?

  • Jack of Jacks: I've asked the compiler team to comment about C99/C11 Core Language features. I'm not aware of any having been implemented since 2013 RTM (which, as I mentioned in blogs.msdn.com/.../c-11-14-stl-features-fixes-and-breaking-changes-in-vs-2013.aspx , supported C99 _Bool, compound literals, designated initializers, and variable declarations), but my knowledge is limited - since I work on the C++ Standard Library, I rarely interact with the C Core Language.

    I know more about the C99 Standard Library (incorporated into C++11/14 by reference). Our support is now complete, including <uchar.h>/<cuchar> (but with char16_t/char32_t being simulated in C++ mode; we're working on it), with the sole exception of <tgmath.h>. (We have <ctgmath> for C++11.)

    TomP: While we can't promise when or how a fix will ship, I can tell you that the compiler dev working on your bug marked it (in our internal database) as Testing Fix on Fri 8/22, so things are looking good. Also, I mentioned this in my post and my first comment, but I'll say it again in my Big Voice:

    VS14 RTM is planned for 2015.

Page 1 of 5 (62 items) 12345