Visual Studio 2017 has been officially launched today. The release notes contain a summary of all the changes available in the new version. This post is focused on the changes for C++ development.
The Visual C++ team has released a series of blog posts to document some of the new features. Here is a list of them:
- Visual Studio 2017 for C++ developers – you will love it
- C++ Code Analysis improvements in Visual Studio 2017 RTM
- Check for const correctness with the C++ Core Guidelines Checker
- Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”
- MSVC: The best choice for Windows
- Use any C++ Compiler with Visual Studio
- C++ game development workload in Visual Studio 2017
- Completed UserVoice Suggestions in Visual Studio 2017
- C++ Standards Conformance from Microsoft
- C++14 conformance improvements: constexpr and aggregate initialization
- Visual Studio Code C/C++ extension March 2017 Update
Of all the changes and new features in VC++ 2017 (that are described in details in the articles mentioned above) there are several that I want to mention:
- The C++ compiler is C++14 complete, but still lacks several C++98 and C++11 features. It also contains some features added to C++17.
- The standard library implementation contains C++17 features including: any, optional, variant, string_view, make_from_tuple(). The complete list of improvements is available here.
- Visual C++ 2017 runtime is compatible to the Visual C++ 2015 runtime. That means you can link to libraries build with VC++ 2015.
- The C++ compiler version is 19.1, a minor release of the Visual C++ 2015 compiler (version 19.0). That means _MSC_VER is 1910. On the other hand, MFC and ATL are still on version 14.0 as in Visual C++ 2015. That means _MFC_VER and _ATL_VER ar both 0x0E00.
- It is possible to open code from any folder with the Open Folder feature and get IntelliSense, navigation, building, and debugging capabilities without creating a solution and project first.
- You can build your projects with CMake that is now supported in Visual Studio.
- There is a built-in support for using another C++ compiler, such as Clang or GCC (mainly intended for building projects that target Android, Linux or Mac).
- The C++ Core Checkers for enforcing the C++ Core Guidelines are now distributed with Visual Studio.
- Installation of Visual Studio has been redesigned. Components are delivered in “workloads”, but individual components can be added or removed. For C++ there are five workloads: Universal Windows Platform development, Desktop Development with C++, Game development with C++, Mobile development with C++, and Linux development with C++.
- Installation folder is not c:\Program Files (x86)\Microsoft Visual Studio 15.0 as with previous version, but c:\Program Files (x86)\Microsoft Visual Studio\2017\.