_MSC_VERと_MSC_FULL_VERをまとめる

# 情報提供

情報提供お待ちしています。編集リクエストなりコメントでいただければなるべく早く反映します。

# 追記: cpprefjp, dev.toにも同じ表を記載

- [処理系 - cpprefjp C++日本語リファレンス](https://cpprefjp.github.io/implementation.html#visual_cpp_ver)
- [List of \_MSC\_VER and \_MSC\_FULL\_VER](https://dev.to/yumetodo/list-of-mscver-and-mscfullver-8nd)

にてこの記事とほぼ同じ内容を記述するようになりました。どちらも私がメンテナンスしますので、どちらかに修正依頼が来れば双方に反映します。

# Visual Studioのversionと判別マクロ

空欄はわからないところです。

| 表記          | 製品名 [Visual Studio version] [^1] | VC++ version [^2] | `_MSC_VER` | `_MSC_FULL_VER` |
|---------------|----------------------------------------|-----------------|------------|-----------------|
| 2022 Update 13 | Visual Studio 2022 Version 17.13.0    | 14.43           | 1943       | 194334808       |
| 2022 Update 12 | Visual Studio 2022 Version 17.12.4    | 14.42           | 1942       | 194234436       |
| 2022 Update 12 | Visual Studio 2022 Version 17.12.3    | 14.42           | 1942       | 194234435       |
| 2022 Update 11 | Visual Studio 2022 Version 17.11.0    | 14.41           | 1941       | 194134120       |
| 2022 Update 10 | Visual Studio 2022 Version 17.10.5    | 14.40           | 1939       | 194033811       |
| 2022 Update 9 | Visual Studio 2022 Version 17.9.2      | 14.39           | 1939       | 193933521       |
| 2022 Update 8 | Visual Studio 2022 Version 17.8.3      | 14.38           | 1938       | 193833133       |
| 2022 Update 7 | Visual Studio 2022 Version 17.7.0      | 14.37           | 1937       | 193732822       |
| 2022 Update 6 | Visual Studio 2022 Version 17.6.2      | 14.36           | 1936       | 193632532       |
| 2022 Update 5 | Visual Studio 2022 Version 17.5.4      | ??              | 1935       | 193532217       |
| 2022 Update 4 | Visual Studio 2022 Version 17.4.9      | ??              | 1934       | 193431944       |
| 2022 Update 3 | Visual Studio 2022 Version 17.3.6      | 14.33           | 1933       | 193331630       |
| 2022 Update 2 | Visual Studio 2022 Version 17.2.2      | 14.32           | 1932       | 193231329       |
| 2022          | Visual Studio 2022 Version 17.0.2      | 14.30           | 1930       | 193030706       |
| 2022          | Visual Studio 2022 Version 17.0.1      | 14.30           | 1930       | 193030705       |
| 2019 Update 11 | Visual Studio 2019 version 16.11.2 | 14.28 | 1929 | 192930133 |
| 2019 Update 9 | Visual Studio 2019 version 16.9.2 | 14.28 | 1928 | 192829913 |
| 2019 Update 8 | Visual Studio 2019 version 16.8.2 | 14.28 | 1928 | 192829334 |
| 2019 Update 8 | Visual Studio 2019 version 16.8.1 | 14.28 | 1928 | 192829333 |
| 2019 Update 7 | Visual Studio 2019 version 16.7   | 14.27 | 1927 | 192729112 |
| 2019 Update 6 | Visual Studio 2019 version 16.6.2 | 14.26 | 1926 | 192628806 |
| 2019 Update 5 | Visual Studio 2019 version 16.5.1 | 14.25 | 1925 | 192528611 |
| 2019 Update 4 | Visual Studio 2019 version 16.4.0 | 14.24 | 1924 | 192428314 |
| 2019 Update 3 | Visual Studio 2019 version 16.3.2 | 14.23 | 1923 | 192328105 |
| 2019 Update 2 | Visual Studio 2019 version 16.2.3 | 14.22 | 1922 | 192227905 |
| 2019 Update 1 | Visual Studio 2019 version 16.1.2 | 14.21 | 1921 | 192127702 |
| 2019          | Visual Studio 2019 version 16.0.0   | 14.20           | 1920       | 192027508       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.11  | 14.16           | 1916       | 191627030       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.7   | 14.16           | 1916       | 191627027       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.5   | 14.16           | 1916       | 191627026       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.4   | 14.16           | 1916       | 191627025       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.1   | 14.16           | 1916       | 191627023       |
| 2017 Update 9 | Visual Studio 2017 version 15.9.0   | 14.16           | 1916       |                 |
| 2017 Update 8 | Visual Studio 2017 version 15.8.0   | 14.15           | 1915       |                 |
| 2017 Update 7 | Visual Studio 2017 version 15.7.5   | 14.14           | 1914     | 191426433       |
| 2017 Update 7 | Visual Studio 2017 version 15.7.3   | 14.14           | 1914     | 191426430       |
| 2017 Update 7 | Visual Studio 2017 version 15.7.2   | 14.14           | 1914     | 191426429       |
| 2017 Update 7 | Visual Studio 2017 version 15.7.1   | 14.14           | 1914       | 191426428       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.7   | 14.13           | 1913       | 191326132       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.6   | 14.13           | 1913       | 191326131       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.4   | 14.13           | 1913       | 191326129       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.3   | 14.13           | 1913       | 191326129       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.2   | 14.13           | 1913       | 191326128       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.1   | 14.13           | 1913       | 191326128       |
| 2017 Update 6 | Visual Studio 2017 version 15.6.0   | 14.13           | 1913       | 191326128       |
| 2017 Update 5 | Visual Studio 2017 version 15.5.7   | 14.12           | 1912       | 191225835       |
| 2017 Update 5 | Visual Studio 2017 version 15.5.6   | 14.12           | 1912       | 191225835       |
| 2017 Update 5 | Visual Studio 2017 version 15.5.4   | 14.12           | 1912       | 191225834       |
| 2017 Update 5 | Visual Studio 2017 version 15.5.3   | 14.12           | 1912       | 191225834       |
| 2017 Update 5 | Visual Studio 2017 version 15.5.2   | 14.12           | 1912       | 191225831       |
| 2017 Update 4 | Visual Studio 2017 version 15.4.5   | 14.11           | 1911       | 191125547       |
| 2017 Update 4 | Visual Studio 2017 version 15.4.4   | 14.11           | 1911       | 191125542       |
| 2017 Update 3 | Visual Studio 2017 version 15.3.3   | 14.11           | 1911       | 191125507       |
| 2017 Update 2 [^3] | Visual Studio 2017 version 15.2 | 14.10          | 1910       | 191025017       |
| 2017 Update 1 [^3] | Visual Studio 2017 version 15.1 | 14.10          | 1910       | 191025017       |
| 2017          | Visual Studio 2017 version 15.0     | 14.10 [^4]      | 1910       | 191025017       |
| 2015 Update 3 | Visual Studio 2015 Update 3 [14.0]  | 14.0            | 1900       | 190024210       |
| 2015 Update 2 | Visual Studio 2015 Update 2 [14.0]  | 14.0            | 1900       | 190023918       |
| 2015 Update 1 | Visual Studio 2015 Update 1 [14.0]  | 14.0            | 1900       | 190023506       |
| 2015          | Visual Studio 2015          [14.0]  | 14.0            | 1900       | 190023026       |
| 2013 Nobemver CTP | Visual Studio 2013 Nobemver CTP [12.0] | 12.0     | 1800       | 180021114       |
| 2013 Update 5 | Visual Studio 2013 Update 5 [12.0]  | 12.0            | 1800       | 180040629       |
| 2013 Update 4 | Visual Studio 2013 Update 4 [12.0]  | 12.0            | 1800       | 180031101       |
| 2013 Update 3 | Visual Studio 2013 Update 3 [12.0]  | 12.0            | 1800       | 180030723       |
| 2013 Update 2 | Visual Studio 2013 Update 2 [12.0]  | 12.0            | 1800       | 180030501       |
| 2013 Update2 RC| Visual Studio 2013 Update2 RC [12.0] | 12.0          | 1800       | 180030324       |
| 2013 Update 1 [^3] | Visual Studio 2013 Update 1 [12.0] | 12.0        | 1800       | 180021005       |
| 2013          | Visual Studio 2013          [12.0]  | 12.0            | 1800       | 180021005       |
| 2013 RC       | Visual Studio 2013 RC       [12.0]  | 12.0            | 1800       | 180020827       |
| 2013 Preview  | Visual Studio 2013 Preview  [12.0]  | 12.0            | 1800       | 180020617       |
| 2012 November CTP | Visual Studio 2012 November CTP [11.0] | 11.0     | 1700       | 170051025       |
| 2012 Update 4 | Visual Studio 2012 Update 4 [11.0]  | 11.0            | 1700       | 170061030       |
| 2012 Update 3 | Visual Studio 2012 Update 3 [11.0]  | 11.0            | 1700       | 170060610       |
| 2012 Update 2 | Visual Studio 2012 Update 2 [11.0]  | 11.0            | 1700       | 170060315       |
| 2012 Update 1 | Visual Studio 2012 Update 1 [11.0]  | 11.0            | 1700       | 170051106       |
| 2012          | Visual Studio 2012          [11.0]  | 11.0            | 1700       | 170050727       |
| 2010 SP1      | Visual Studio 2010 SP1      [10.0]<br/>Visual C++ 2010 SP1     [10.0] | 10.0 | 1600 | 160040219 |
| 2010          | Visual Studio 2010          [10.0]<br/>Visual C++ 2010         [10.0] | 10.0 | 1600 | 160030319 |
| 2010 Beta 2   | Visual Studio 2010 Beta 2   [10.0]  | 10.0            | 1600       | 160021003       |
| 2010 Beta 1   | Visual Studio 2010 Beta 1   [10.0]  | 10.0            | 1600       | 160020506       |
| 2008 SP1      | Visual Studio 2008 SP1      [9.0] <br/>Visual C++ 2008 SP1     [9.0]  | 9.0  | 1500 | 150030729 |
| 2008          | Visual Studio 2008          [9.0] <br/>Visual C++ 2008         [9.0]  | 9.0  | 1500 | 150021022 |
| 2008 Beta 2   | Visual Studio 2008 Beta 2   [9.0]   | 9.0             | 1500       | 150020706       |
| 2005 SP1      | Visual Studio 2005 SP1      [8.0] <br/>Visual C++ 2005 SP1     [8.0]  | 8.0  | 1400 | 140050727 |
| 2005          | Visual Studio 2005          [8.0] <br/>Visual C++ 2005         [8.0]  | 8.0  | 1400 | 140050320 |
| 2005 Beta 2   | Visual Studio 2005 Beta 2   [8.0]   | 8.0             | 1400       | 140050215       |
| 2005 Beta 1   | Visual Studio 2005 Beta 1   [8.0]   | 8.0             | 1400       | 140040607       |
|               | Windows Server 2003 SP1 DDK (for AMD64)                               |      | 1400 | 140040310 |
| 2003 SP1      | Visual Studio .NET 2003 SP1 [7.1]<br/>Visual C++ .NET 2003 SP1 [7.1]  | 7.1  | 1310 | 13106030  |
|               | Windows Server 2003 SP1 DDK                                           |      | 1310 | 13104035  |
| 2003          | Visual Studio .NET 2003     [7.1]<br/>Visual C++ .NET 2003     [7.1]  | 7.1  | 1310 | 13103077  |
|               | Visual Studio Toolkit 2003  [7.1]   | 7.1             | 1310       | 13103052        |
| 2003 Beta     | Visual Studio .NET 2003 Beta [7.1]  | 7.1             | 1310       | 13102292        |
|               | Windows Server 2003 DDK                                               |      | 1310 | 13102179  |
| 2002          | Visual Studio .NET 2002     [7.0]<br/>Visual C++ .NET 2002     [7.0]  | 7.0  | 1300 | 13009466  |
|               | Windows XP SP1 DDK                                                    |      | 1300 | 13009176  |
| 6.0 SP6       | Visual Studio 6.0 SP6<br/>Visual C++ 6.0 SP6 | 6.0    | 1200       | 12008804        |
| 6.0 SP5       | Visual Studio 6.0 SP5<br/>Visual C++ 6.0 SP5 | 6.0    | 1200       | 12008804        |
|               | Visual Studio 97 [5.0]<br/>Visual C++ 5.0 | 5.0       | 1100       |                 |
|               | Visual C++ 4.2                      | 4.2             | 1020       |                 |
|               | Visual C++ 4.1                      | 4.1             | 1010       |                 |
|               | Visual C++ 4.0                      | 4.0             | 1000       |                 |
|               | Visual C++ 2.0                      | 2.0             | 900        |                 |
|               | Visual C++ 1.0                      | 1.0             | 800        |                 |
|               | Microsoft C/C++ 7.0                 |                 | 700        |                 |
|               | Microsoft C 6.0                     |                 | 600        |                 |

C++11の``constexpr``がまともに使えるようになったのはVisual Studio 2015 Update1からですね。

C++17に完全対応したのがVisual Studio 2017 version 15.7からです。

## 参考サイト
- https://github.com/XhmikosR/notepad2-mod/blob/master/src/Version.h
- http://blogs.msdn.com/b/vcblog/archive/2013/11/18/announcing-the-visual-c-compiler-november-2013-ctp.aspx
- http://blog.systemjp.net/entry/20091014/p6
- http://srz-zumix.blogspot.jp/2013/11/constexpr.html
- http://stackoverflow.com/questions/13794130/visual-studio-how-to-check-used-c-platform-toolset-programmatically
- http://blogs.msdn.com/b/bharry/archive/2014/01/20/vs-2013-1-update-1-is-available.aspx
- https://twitter.com/YSRKEN/status/707908641177767936
- [http://www.ailight.jp/Blog/sha256/archive/2009/3/8/_MSC_VER のメモ (アップデート版) - Visual C](http://www.ailight.jp/Blog/sha256/archive/2009/3/8/_MSC_VER%20%E3%81%AE%E3%83%A1%E3%83%A2%20%28%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E7%89%88%29%20-%20Visual%20C)
- [http://www.ailight.jp/Blog/sha256/archive/2005/8/16/_MSC_VER のメモ - Visual C](http://www.ailight.jp/Blog/sha256/archive/2005/8/16/_MSC_VER%20%E3%81%AE%E3%83%A1%E3%83%A2%20-%20Visual%20C)
- [_MSC_FULL_VERマクロ - yohhoyの日記](http://d.hatena.ne.jp/yohhoy/20121106/p1)

## 注釈
[^1]: 製品名の列にはVisual C++コンパイラを含む実際に入手する製品の名称を示す。製品のエディション (Express/Standard/Professional/Enterprise/Community 他) は省略する。Visual Studioの製品versionは、製品名に現れていないときは `[ ～ ]` 内に記す。製品versionは、2017以降、メインメニューの [ヘルプ]-[Microsoft Visual Studio のversion情報] から確認できるものを指す。
[^2]: VC++versionの列にはVisual C++ツールセットのversionを記述する。この表では特にVisual C++を入れた時に既定で選択されるツールセットのみについて扱う。Visual Studio 2022においては`C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC`配下のフォルダ名(`14.39.33519`など)で確認できる。
[^3]: IDEのみ修正され、コンパイラ、ヘッダー、ライブラリ等は変更されなかった。
    - [C++17 Features And STL Fixes In VS 2017 15.3 | Visual C++ Team Blog](https://blogs.msdn.microsoft.com/vcblog/2017/08/11/c17-features-and-stl-fixes-in-vs-2017-15-3/) - "*After VS 2017 RTM, the 15.1 and 15.2 updates improved the IDE. The 15.3 update improves both the IDE and the toolset.*"
  - [Description of Visual Studio 2013 Update 1](https://support.microsoft.com/en-us/help/2911573/description-of-visual-studio-2013-update-1)


[^4]: 2017は2015とバイナリ互換が保たれているためメジャーversionアップは行われなかった。その結果、製品versionとVisual C++versionが一致しなくなった。
  [Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”](https://blogs.msdn.microsoft.com/vcblog/2017/03/07/binary-compatibility-and-pain-free-upgrade-why-moving-to-visual-studio-2017-is-almost-too-easy/)

- 2015以降、Visual Studioの既定のインストールではVisual C++は入らなくなった。Visual StudioのインストーラでVisual C++コンポーネントを選択する必要がある。
  [Visual Studio 2015 の Visual C++](https://msdn.microsoft.com/ja-jp/library/60k1461a.aspx) の [警告] を参照。
- 2017 Update 5からside-by-sideがサポートされ、一つの製品内で同時に複数のVisual C++ツールセットを選択できるようになった。
  [Side-by-side minor version MSVC toolsets in Visual Studio 2017 | Visual C++ Team Blog](https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/)


# License

[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/deed.ja)

<a href="https://commons.wikimedia.org/wiki/File:CC-BY_icon.svg#/media/File:CC-BY_icon.svg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/16/CC-BY_icon.svg/1200px-CC-BY_icon.svg.png" alt="CC-BY icon.svg" width="88px"></a>