The Visual Studio 2017 (15.5 update) is now available for download, and you should see the ‘new update available’ notification in the coming weeks–you can also get the update now by downloading the ‘free trial’ version of the installer which will let you update your system. This is second major update to the 19.x C++ compiler with a focus on C++17 conformance and bug fixes.
All versions of Visual Studio 2017 are out of their “mainstream” support lifecycle as of April 2022. Platform toolset v141 from 15.9 support is still available in Visual Studio 2019 and Visual Studio 2022 as optional components..
Compiler and CRT
Servicing: 15.5.2 includes the 19.12.25831 compiler. 15.5.3 includes 19.12.25834. These fix some ICE (internal compiler errors) and a x64 bad codegen issue. 15.5.5 includes 19.12.25835 which adds a new
/permissive- switch can be specified with a new VC++ project element
<ConformanceMode> instead of having to use
<AdditionalOptions> starting with the 15.5 update. Newly created VC++ project templates after the 15.5 update will include this element by default except for those that have C++/CX (
Note: Per this blog post, the
_MSC_VER value is now 1912 instead of 1910 or 1911
Side-by-side compiler versions: The 15.5 update also supports selecting the older 15.4 compiler (which was basically the same as the 15.3 compiler with a fix hotfixes) with new side-by-side support. In the installer go to the Individual Components tab and check VC++ 2017 version 15.4 v14.11 toolset. This is intended for use in diagnosing potential compiler regressions should you encounter them as it’s enabled via manually updating a specific
.props file on your system.
std::function: If you make use of this aspect of the STL as I do in DirectX Tool Kit et al, you should read this blog post about some debugging improvements in 15.5.
The C/C++ Runtime (14.12.25810) is included in this update. Remember that VS 2015 and VS 2017 share the same runtime redistributable binaries and that VS 2015 Update 3 is binary compatible with VS 2017–code or static library built with one can be linked to the other–, so this is the latest version for both.