That was fast!
If you’re at Build in San Francisco tomorrow afternoon, I invite you to swing by and spend an hour with us in session 2-661:
by Herb Sutter
Build 2014, Room 2005
2:30-3:30 pm, Thursday April 3, 2014
If you’re new to C++, this talk is aimed directly at you. I was asked to give a “foundational talk” about C++, and I decided that meant I should focus on addressing two questions that I get a lot these days:
- FAQ #1 (1-2 slides): When should I use C++ compared to another language – on all platforms in general, and on Microsoft platforms in particular?
Even if you’re a seasoned C++ developer, there are some nuggets and data points in the middle of the talk that I think you will find useful in your own work, and I hope that the talk as a whole will be helpful to you in providing a way to explain C++’s value proposition and give (or link to) an answer when someone asks you FAQ #2.
I think it will be recorded, and will post a link here when the recording is available.
I look forward to seeing many of you there tomorrow afternoon.
We just shipped Visual C++2013 last month, but I announced at GoingNative in September that there would be more soon: another CTP (compiler preview) containing another batch of C++11/14 features, sometime in the fourth quarter.
I’m happy to report that today we shipped the promised CTP. Compared to the “high probability in CTP” feature set I mentioned in my GoingNative talk, one of those features I mentioned didn’t quite make it (C++14 generalized lambda capture, a.k.a. move capture and more), but to compensate, both medium-probability features made it (C++14 generic lambdas and C++11 inheriting constructors) plus, as a bonus, also alignof and alignas which we didn’t think would make it for the CTP but did. Here’s the full set of new features, pasting from the announcement:
- Implicit move special member function generation (thus also completing =default)
- Reference qualifiers on member functions (a.k.a. “& and && for *this“)
- Thread-safe function local static initialization (a.k.a. “magic statics”)
- Inheriting constructors
- Extended sizeof
- constexpr (except for member functions)
- noexcept (unconditional)
- C++14 decltype(auto)
- C++14 auto function return type deduction
- C++14 generic lambdas (with explicit lambda capture list)
- (Proposed for C++17) Resumable functions and await
The most-requested feature of C++14, and the one I’ve personally been anticipating the most, is generic lambdas — it is sweet to see it working right within Visual Studio 2013, as the CTP installs as a selectable toolset you can use within the shipping product to edit and build (no Intellisense or red squiggles though). Note that for this CTP, your lambda can be either generic (have an auto parameter type) or have a default capture list (e.g., [=] or [&]), but not both — of course we’ll support both together in the future as the feature makes a future release.
As far as I know, this Visual C++ CTP is the first shipping (albeit CTP quality) C++ compiler to offer generic lambdas, though I expect Clang and gcc to also make them available soon — joy for C++ developers everywhere!
Once again, thank you very much again to the great Visual C++ team for producing this CTP; even as we speak, they’re hard at work on more. Thanks again also to the other members of the ISO C++ committee for producing a great and high-quality C++11 and soon-to-be-not-draft C++14.
I hope you enjoy trying out this CTP.
As part of today’s VS 2013 launch, in addition to the live talks and Q&A we also have some recently recorded talks that are now also live. My talk is a quick 20-minute tour of the new ISO C++ conformance features in VC++ 2013 — nothing I haven’t said before, so if you’ve seen my last two Build talks you’ve seen this material, only here I’ve condensed it to a distilled two-minute overview of each feature using examples.
Here they are, each between 4 and 20 minutes long. Note that these are just the (V)C++-specific topics — be sure to look at the Related Videos of each to see other new features that light up for C++ as well as for other languages.
ISO C++ Additions in Visual C++ 2013 (Herb Sutter)
ISO C++ received a major upgrade with the latest standard, adding many features that make the language both simpler and more powerful. Visual C++ 2010 and 2012 have already implemented a number of these features, from auto to range-for to lambdas. In this video, Herb Sutter reviews the additional ISO C++ standards conformance improvements in Visual C++ 2013, and how each of them contributes to making modern C++ code clean, safe, and faster than ever.
What’s New for C++ Developers in Visual Studio 2013 IDE (Jennifer Leaf)
Visual Studio 2013 includes several compelling new features for C++ developers. In this video, you’ll learn about IntelliSense improvements, the new code formatting feature, and other changes that help you navigate through and write your code.
New Compiler Optimizations for C++ Applications (Jim Hogg & Ankit Asthana)
C++ developers will find many improvements in Visual Studio 2013 — including new versions of the compiler, linker and tools — that make code run faster. In this video we’ll cover C++ performance improvements, including better vectorization; permutation in the order of loop nests; better Profile-Guided Optimization (that now applies to Windows Store apps); a new vector calling convention; and more support for C++ Accelerated Massive Parallelism (AMP).
Debugging Improvements for C++ Developers (Brad Sullivan)
Visual C++ in Visual Studio 2013 includes improvements for Windows App developers in the core language and libraries, as well in tooling, debugging and designers. This video will provide an overview of these new features in Visual Studio 2013 for C++ developers building Windows Store apps.
As part of the VS 2013 launch today, in a few hours I will be joining Tarek Madkour and Ale Contenti on camera for about half an hour to answer questions about VC++2013. Tarek and Ale are two of the three-manager triad who run our VC++ team.
with Charles Torre, Ale Contenti, Tarek Madkour, and Herb Sutter
Date: November 13, 2013
Time: 12:45pm PST (approx.)
I believe the session will be recorded and available on demand in a couple of days.
Recap: Back in June, Microsoft:
- announced that were were moving to a faster cadence and shipped VS 2013 one year after VS 2012;
- announced that new ISO C++ conformance features from the November 2012 CTP (and more) would be available in VS 2013, but not in VS 2012 Updates; and
- didn’t announce pricing for VS 2013, so people who had just paid for VS 2012 Professional (only that specific SKU) were concerned that they might be charged full price again for VS 2013 Professional. (This applies to Professional only, because all other SKUs get free upgrades anyway — Express is always free, and Premium and Ultimate are subscription-based with free upgrades included in the subscription.)
I just want to remind anyone who bought VS 2012 Professional that when the actual pricing was announced last month, it was announced that to ease the transition there would be a limited time promotional upgrade from VS 2012 Professional to VS 2013 Professional for $99, available from early November (now) until the end of January. You can wait until after the holidays to decide whether you want it, but I thought I’d just give another heads-up about the time limit if this upgrade matters to you.
I hope this is a good value, as VS 2013 has lots of new features for C++ users beyond just the additional ISO C++ conformance: lots of editor improvements from simple things like brace completion and parameter-sensitive Intellisense to the (IMO cool) enhanced scrollbar and peek definition; C++ AMP improvements; optimization improvements including a smarter auto-vectorizer; and much more. See this blog post for an overview of what’s new in VC++ 2013 — the team did a lot in just one year, and thank you again to everyone who helped to make this happen!
What’s next for Visual C++:
- At Build and GoingNative, we announced that a preview CTP of the next batch of C++11/14 language features will be available this quarter. We’re still on track for that. Watch vcblog and this space for the announcement.
- Tomorrow is the VS 2013 virtual launch. Given that we already shipped the product itself a month ago so that you already have it in your hands, is there any reason to watch the launch? Short answer: Yes, I think you’ll find it interesting and worth your while.
My live Q&A after Friday’s The Future of C++ talk is now online on Channel 9. The topics revolved around…
… recent progress and near-future directions for C++, both at Microsoft and across the industry, and talks about some announcements related to C++11 support in VC++ 2012 and the formation of the Standard C++ Foundation.
Herb takes questions from a live virtual audience and demos the new http://isocpp.org site on an 82 inch Perceptive Pixel display attached to a Windows 8 machine.
Thanks to everyone who tuned in.
Yesterday, many thousands of you were in the room or live online for my talk on The Future of C++. The talk is now available online.
This has been a phenomenal year for C++, since C++11’s publication just 12 months ago. And yesterday was a great day for C++.
Yesterday I had the privilege of announcing much of what Microsoft and the industry have been working on over the past year.
(minor) C++ at Microsoft
On September 12, we shipped VC++ 2012 with the complete C++11 standard library, and adding support for C++11 range-for, enum class, override and final. Less than two months later, yesterday we announced and shipped the November 2012 CTP, a compiler add-in to VC++ 2012 adding C++11 variadic templates, uniform initialization and initializer_lists, delegating constructors, function template default arguments, explicit conversion operators, and raw string literals. Details here, and download here.
Note that this is just the first batch of additional C++11 features. Expect further announcements and deliveries in the first half of 2013.
(major) C++ across the industry
Interest and investment in C++ continues to accelerate across the software world.
- ISO C++ standardization is accelerating. Major companies are dedicating more people and resources to C++ standardization than they have in years. Over the next 24 months, we plan to ship three Technical Specifications and a new C++ International Standard.
- C++ now has a home on the web at isocpp.org. Launched yesterday, it both aggregates the best C++ content and hosts new content itself, including Bjarne Stroustrup’s new Tour of C++ and Scott Meyers’ new Universal References article.
- We now have a Standard C++ Foundation. Announced yesterday, it is already funded by the largest companies in the industry down to startups, financial institutions to universities, book publishers to other consortia, with more members joining weekly. For the first time in C++’s history since AT&T relinquished control of the language, we have an entity – a trade organization – that exists exclusively to promote Standard C++ on all compilers and platforms, and companies are funding it because the world runs on C++, and investing in Standard C++ is good business.
This is an exciting time to be part of our industry, on any OS and using any language. It’s especially an exciting time to be involved with C++ on all compilers and platforms.
Thank you all, whatever platform and language you use, for being part of it.
A few hours ago I sat down to give a short teaser for my webcast talk this Friday.
Here it is. Feel free to forward.
(I don’t think they believed me when I said I could keep it to under two minutes.)
Friday, November 2, 2012
12:45pm (U.S. Pacific Time)
This talk will give an update on recent progress and near-future directions for C++, both at Microsoft and across the industry, with some announcements of interest in both areas. The speaker is the lead language architect of Visual C++ and chair of the ISO C++ committee.
If you know people who are interested in C++, on any platform, you’ll want to let them know to tune in.