We've implemented the Standard's feature-test macros, which are the best way to determine whether a feature is supported by your current combination of compiler vendor, compiler version, library vendor, library version, and build settings. However, it can occasionally be useful to query the library version directly. We provide an implementation-specific macro _MSVC_STL_UPDATE
defined in the STL's central internal header yvals_core.h
; users should include <version>
or any other Standard header to get this macro. This macro follows the year-month format of Standard feature-test macros, but isn't related to any of them. We simply intend to update the value of _MSVC_STL_UPDATE
every month, so when a Visual Studio update ships, it captures a new value.
Here are the historical values of this macro, verified from actual installations of released (non-preview) Visual Studio updates:
_MSC_VER |
Visual Studio | _MSVC_STL_UPDATE |
Required Clang | Required CUDA | Notes |
---|---|---|---|---|---|
1941 |
VS 2022 17.11 | 202405L |
CUDA 12.4.0 | ||
1940 |
VS 2022 17.10 | 202402L |
Clang 17 | CUDA 12.4.0 began allowing _MSC_VER=1940 |
|
1939 |
VS 2022 17.9 | 202310L |
|||
1938 |
VS 2022 17.8 | 202308L |
|||
1937 |
VS 2022 17.7 | 202305L |
Clang 16 | ||
1936 |
VS 2022 17.6 | 202302L |
|||
1935 |
VS 2022 17.5 | 202210L |
Clang 15 | ||
1934 |
VS 2022 17.4 | 202208L |
Clang 14 | CUDA 11.6.0 | |
1933 |
VS 2022 17.3 | 202205L |
|||
1932 |
VS 2022 17.2 | 202203L |
Clang 13 | ||
1931 |
VS 2022 17.1 | 202111L |
|||
1930 |
VS 2022 17.0 | 202108L |
Clang 12 | CUDA 11.6.0 began allowing _MSC_VER=1930 |
|
1929 |
VS 2019 16.11.14 | 202105L |
/std:c++20 complete |
||
1929 |
VS 2019 16.11 | 202104L |
Only #1929 in 16.11.0 and #2060 in 16.11.4 | ||
1929 |
VS 2019 16.10 | 202104L |
Clang 11 | CUDA 10.1 Update 2 | |
1928 |
VS 2019 16.9 | 202011L |
|||
1928 |
VS 2019 16.8 | 202008L |
|||
1927 |
VS 2019 16.7 | 202005L |
Clang 10 | ||
1926 |
VS 2019 16.6 | 202002L |
|||
1925 |
VS 2019 16.5 | 201912L |
Clang 9 | ||
1924 |
VS 2019 16.4 | 201909L |
Clang 8.0.1 | ||
1923 |
VS 2019 16.3 | 201906L |
|||
1922 |
VS 2019 16.2 | 201905L |
Clang 8 | ||
1921 |
VS 2019 16.1 | 201903L |
|||
1920 |
VS 2019 16.0 | 201811L |
CUDA 10.1 RTW began allowing _MSC_VER=1920 |
||
1916 |
VS 2017 15.9 | 201809L |
|||
1915 |
VS 2017 15.8 | 201806L |
|||
1914 |
VS 2017 15.7 | 201803 |
|||
1913 |
VS 2017 15.6 | 201711 |
|||
1912 |
VS 2017 15.5 | 201709 |
|||
older | older | none | _MSVC_STL_UPDATE did not exist prior to VS 2017 15.5 |