Visual Studio 2013 RC is now available

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.”

Well, today is “in September”: Today we shipped Visual Studio 2013 RC, which includes all of those features in a production-supported go-live Visual C++ product. Thank you very much to everyone on the front-end, back-end, and other VC++ teams for making this possible! See that post for additional features – there’s more there than just conformance work, from new auto-vectorizer optimizations to graphics and native/Javascript debugging to quite a bit more.

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):

  • __func__
  • 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.

8 thoughts on “Visual Studio 2013 RC is now available

  1. @Mathlasse: VS 2013 doesn’t have constexpr. However, the November 2013 CTP does support constexpr on nonmember functions and this code compiles fine with the CTP.

  2. This constexpr code does not compiled in Visual Studio 2013 version 12.0.21005.1 REL

    #include

    constexpr int factorial(int n)
    {
    return n <= 1 ? 1 : (n * factorial(n – 1));
    }

    int main(void)
    {
    const int fact_three = factorial(3);
    std::cout << fact_three << std::endl;
    return 0;
    }

  3. Pingback: Another Layer
  4. Can’t wait to try out the CTP at the end of the year, generalised lambda capture and await in particular stand out for me, and await will mean no longer having to take a dependency on the CLR to do nontrivial asynchronous work in ‘Store apps. Big tip of the hat to everyone involved in the Visual C++product, so good to see the language riding high again at Microsoft!

Comments are closed.