Skip to content

Commit 6b87e6b

Browse files
TylerMSFTTylerMSFT
authored andcommitted
add compiler versions article
1 parent c20903e commit 6b87e6b

3 files changed

Lines changed: 65 additions & 34 deletions

File tree

docs/overview/compiler-versions.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
description: "Learn more about the microsoft visual c++ compiler versioning story"
3+
title: "Microsoft Visual C++ compiler versions (Visual C++)"
4+
ms.date: 02/08/2024
5+
ms.service: "visual-cpp"
6+
ms.subservice: "tools"
7+
helpviewer_keywords: ["Visual C++, platforms supported", "platforms [C++]"]
8+
---
9+
# Microsoft Visual C++ compiler versionsSupported platforms (Visual C++)
10+
11+
The Microsoft Visual C++ compiler version consists of a major and minor version number, which is reflected in the [`_MSC_VER`](../preprocessor/predefined-macros.md) macro as a number, such as 1938.
12+
13+
Starting with Visual Studio 15:
14+
- each major release increments the 'hundreds' place of the version number.
15+
- each minor release increments the 'ones' place of the version number.
16+
17+
For example, the major version changed between VS 2013 and VS 2015, reflected by a change in `_MSC_VER` from 1800 to 1900. An example of a minor change is from 17.1 to 17.2, when `_MSC_VER` changed from 1931 to 1932.
18+
19+
The following table lists the Visual C++ compiler version numbers and the Visual Studio version in which they were released:
20+
21+
| Visual Studio version | `_MSC_VER` |
22+
|--|--|
23+
| Visual Studio 6.0 | 1200 |
24+
| Visual Studio .NET 2002 (7.0) | 1300 |
25+
| Visual Studio .NET 2003 (7.1) | 1310 |
26+
| Visual Studio 2005 (8.0) | 1400 |
27+
| Visual Studio 2008 (9.0) | 1500 |
28+
| Visual Studio 2010 (10.0) | 1600 |
29+
| Visual Studio 2012 (11.0) | 1700 |
30+
| Visual Studio 2013 (12.0) | 1800 |
31+
| Visual Studio 2015 (14.0) | 1900 |
32+
| Visual Studio 2017 RTW (15.0) | 1910 |
33+
| Visual Studio 2017 version 15.3 | 1911 |
34+
| Visual Studio 2017 version 15.5 | 1912 |
35+
| Visual Studio 2017 version 15.6 | 1913 |
36+
| Visual Studio 2017 version 15.7 | 1914 |
37+
| Visual Studio 2017 version 15.8 | 1915 |
38+
| Visual Studio 2017 version 15.9 | 1916 |
39+
| Visual Studio 2019 RTW (16.0) | 1920 |
40+
| Visual Studio 2019 version 16.1 | 1921 |
41+
| Visual Studio 2019 version 16.2 | 1922 |
42+
| Visual Studio 2019 version 16.3 | 1923 |
43+
| Visual Studio 2019 version 16.4 | 1924 |
44+
| Visual Studio 2019 version 16.5 | 1925 |
45+
| Visual Studio 2019 version 16.6 | 1926 |
46+
| Visual Studio 2019 version 16.7 | 1927 |
47+
| Visual Studio 2019 version 16.8, 16.9 | 1928 |
48+
| Visual Studio 2019 version 16.10, 16.11 | 1929 |
49+
| Visual Studio 2022 RTW 17.0 | 1930 |
50+
| Visual Studio 2022 version 17.1 | 1931 |
51+
| Visual Studio 2022 version 17.2 | 1932 |
52+
| Visual Studio 2022 version 17.3 | 1933 |
53+
| Visual Studio 2022 version 17.4 | 1934 |
54+
| Visual Studio 2022 version 17.5 | 1935 |
55+
| Visual Studio 2022 version 17.6 | 1936 |
56+
| Visual Studio 2022 version 17.7 | 1937 |
57+
| Visual Studio 2022 version 17.8 | 1938 |
58+
59+
## See also
60+
61+
[`_MSCVER`](../preprocessor/predefined-macros.md)\
62+
[Visual C++ compiler version blog post](https://devblogs.microsoft.com/cppblog/visual-c-compiler-version/)

docs/overview/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ items:
2424
href: ../overview/visual-cpp-language-conformance.md
2525
- name: Supported target platforms
2626
href: ../overview/supported-platforms-visual-cpp.md
27+
- name: C++ Compiler versions
28+
href: cpp-compiler-versions.md
2729
- name: C++ Tools and Features in Visual Studio Editions
2830
href: ../overview/visual-cpp-tools-and-features-in-visual-studio-editions.md
2931
- name: Install C11 and C17 support in Visual Studio

docs/preprocessor/predefined-macros.md

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -246,40 +246,7 @@ MSVC supports these additional predefined macros.
246246
247247
- `_MSC_VER` Defined as an integer literal that encodes the major and minor number elements of the compiler's version number. The major number is the first element of the period-delimited version number and the minor number is the second element. For example, if the version number of the Microsoft C/C++ compiler is 17.00.51106.1, the `_MSC_VER` macro evaluates to 1700. Enter `cl /?` at the command line to view the compiler's version number. This macro is always defined.
248248
249-
| Visual Studio version | `_MSC_VER` |
250-
|--|--|
251-
| Visual Studio 6.0 | 1200 |
252-
| Visual Studio .NET 2002 (7.0) | 1300 |
253-
| Visual Studio .NET 2003 (7.1) | 1310 |
254-
| Visual Studio 2005 (8.0) | 1400 |
255-
| Visual Studio 2008 (9.0) | 1500 |
256-
| Visual Studio 2010 (10.0) | 1600 |
257-
| Visual Studio 2012 (11.0) | 1700 |
258-
| Visual Studio 2013 (12.0) | 1800 |
259-
| Visual Studio 2015 (14.0) | 1900 |
260-
| Visual Studio 2017 RTW (15.0) | 1910 |
261-
| Visual Studio 2017 version 15.3 | 1911 |
262-
| Visual Studio 2017 version 15.5 | 1912 |
263-
| Visual Studio 2017 version 15.6 | 1913 |
264-
| Visual Studio 2017 version 15.7 | 1914 |
265-
| Visual Studio 2017 version 15.8 | 1915 |
266-
| Visual Studio 2017 version 15.9 | 1916 |
267-
| Visual Studio 2019 RTW (16.0) | 1920 |
268-
| Visual Studio 2019 version 16.1 | 1921 |
269-
| Visual Studio 2019 version 16.2 | 1922 |
270-
| Visual Studio 2019 version 16.3 | 1923 |
271-
| Visual Studio 2019 version 16.4 | 1924 |
272-
| Visual Studio 2019 version 16.5 | 1925 |
273-
| Visual Studio 2019 version 16.6 | 1926 |
274-
| Visual Studio 2019 version 16.7 | 1927 |
275-
| Visual Studio 2019 version 16.8, 16.9 | 1928 |
276-
| Visual Studio 2019 version 16.10, 16.11 | 1929 |
277-
| Visual Studio 2022 RTW (17.0) | 1930 |
278-
| Visual Studio 2022 version 17.1 | 1931 |
279-
| Visual Studio 2022 version 17.2 | 1932 |
280-
| Visual Studio 2022 version 17.3 | 1933 |
281-
| Visual Studio 2022 version 17.4 | 1934 |
282-
| Visual Studio 2022 version 17.5 | 1935 |
249+
See [C++ compiler versioning](../overview/cpp-compiler-versioning.md) for more information about the compiler version numbers and the Visual Studio versions they correspond to.
283250
284251
To test for compiler releases or updates in a given version of Visual Studio or after, use the `>=` operator. You can use it in a conditional directive to compare `_MSC_VER` against that known version. If you have several mutually exclusive versions to compare, order your comparisons in descending order of version number. For example, this code checks for compilers released in Visual Studio 2017 and later. Next, it checks for compilers released in or after Visual Studio 2015. Then it checks for all compilers released before Visual Studio 2015:
285252

0 commit comments

Comments
 (0)