At Build in June, we announced that VC++ 2013 RTM “later this year” would include the ISO conformance features in the June preview (explicit conversion operators, raw string literals, function template default arguments, delegating constructors, uniform initialization and initializer_lists, and variadic templates) plus also several more to be added between the Preview and the RTM: non-static data member initializers, =default, =delete, “using” aliases, and library support for same plus four C99 features.
Four days ago in my talk at GoingNative (recording was just posted today!), I updated that by saying we would ship an update to VC++ 2013 Preview with all of those features, and again a go-live license, “in September.”
What’s next? As announced last week we’re going to be shipping another CTP in the fourth quarter (compiler tech preview, think of it as an “alpha”) containing another bunch of conformance features. It’s designed to give you early access to a raft of new conformance features in Visual C++, including the following (the first couple are small but I’m breaking them out because the usual C++11/14 conformance lists do it that way):
- Extended sizeof
- Implicit move generation
- Ref-qualifiers: & and && for *this
- Thread-safe function local static initialization (aka “magic statics”)
- noexcept (note: this is unconditional noexcept; the CTP likely won’t have the noexcept(expr) style yet)
- constexpr (note: except for constructors, so the CTP won’t support literal types yet)
- C++14: generalized lambda capture
- C++14: auto function return type deduction
- C++14: decltype(auto)
- Bonus: “await” as currently proposed for the ISO Concurrency TS
Those are the “high probability” features to make it into the CTP. There’s a chance we might also get a couple more “medium probability” features into the Q4 CTP, such as C++14 generic lambdas, but never fear, we’re implementing them all – whatever features don’t get into this CTP will be at the front of the next batch as we push toward full C++11/14 conformance including the C++14-accompanying specifications for the file system library, basic networking library, and especially Concepts Lite. We’ll keep you posted as we know more.