Last year in November, we released an out-of-band customer technology preview (CTP) of the Visual C++ compiler. It contained preview versions of C++11 features which we subsequently fully released in Visual Studio 2012. At that time, and at GoingNative 2013 this year, we promised to keep releasing these CTPs to show our progress towards full C++11 and C++14 standards conformance. Today, we are happy to update the map:
Today, we deliver on that promise.
The November 2013 CTP of the Visual C++ Compiler is immediately available for download here. Breaking changes can be found here.
It contains the following C++11, C++14, and C++/CX features:
- 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
- alignof/alignas
- __func__
- Extended sizeof
- constexpr (except for constructors)
- 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
Stephan T. Lavavej has created helpful and informative videos about these language features in part 10 of his Core C++ series of videos on Channel 9.
Installation and Usage
After downloading and running the installer, you should be able to use the new compiler in Visual Studio 2013. We recommend that you first create a separate project configuration and modify that configuration to use the new compiler. To do so:
- Open the "Build" menu and then select the "Configuration Manager" option.
- In the Configuration Manager, duplicate your existing configuration.
- Open the project's Property Pages by pressing F7 or right clicking the project in Solution Explorer and selecting "Properties".
- In the "General" tab, change "Platform Toolset" from "Visual Studio 2013 (v120)" to "Visual C++ Compiler Nov 2013 CTP (CTP_Nov2013)".
- Rebuild your project.
Important Notes
Before downloading, note the following:
- This is a Customer Technology Preview and does not come with a "Go Live" license.
- Visual Studio 2013 is a prerequisite for using this compiler. If you don't have Visual Studio 2013 installed, we recommend that you download the free Desktop Express edition here.
- This package contains only the compiler and does not yet come with an updated standard library.
- This version of the compiler is only compatible with CRT 12.0.
- This version of the compiler can only be used as an alternative to the Visual C++ 2013 RTM compiler.
- While a new Platform Toolset is provided for convenience of integrating the compiler as part of the Visual Studio 2013 build environment, the Visual Studio 2013 IDE, IntelliSense functionality, debugger, static analyzer, and other tools remain essentially unchanged and do not yet provide support for these new language features.
- For a list of limitations and breaking changes introduced by this CTP compiler, consult the documentation provided on the download site. It will always include the most up-to-date information.
We Want Your Feedback!
One of the main reasons for this release is the gathering of community opinions and bug reports so that we can improve the quality of the compiler. If you find any bugs, and there are certainly many, please submit a report for Visual Studio via Microsoft Connect and use "[Torino]" as a prefix in the bug title. You can also leave comments below and submit suggestions via Visual Studio UserVoice or the integrated Send-a-Smile feature.
We are thankful for your support, and we hope that you have fun in using all these shiny new features in your code. Remember, you can grab the CTP here.