本サイトのリファレンスページでは、「処理系」の項目にバージョン番号を記載している。これは、処理系がその機能をサポート開始した厳密なバージョンではなく、リファレンス執筆者が動作確認できたバージョンである。
古くからサポートされている機能だが、古い処理系を入手することが難しい場合などがあるため、本サイトではこのようなルールになっている。
このサイトでは Clang と呼ぶ。「クラン(グ)」と読む。
- clang
- clang++
- Apple LLVMコンパイラ
-std=c++11
オプションを使用する。
- Clang 3.2から3.4までは、
-std=c++1y
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1y
オプションもある。
- GNU拡張を有効にする
- Clang 3.5以降は、
-std=c++14
オプションを使用する(以前までのオプションも使用できる)。- GNU拡張を有効にする
-std=gnu++14
オプションもある。
- GNU拡張を有効にする
- Clang 6.0以降は、C++14がデフォルトとなる。デフォルトバージョンのコンパイルオプションは
-std=gnu++14
- Clang 3.5から4.0までは、
-std=c++1z
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1z
オプションもある。
- GNU拡張を有効にする
- Clang 5.0以降は、
-std=c++17
オプションを使用する(以前までのオプションも使用できる)。- GNU拡張を有効にする
-std=gnu++17
オプションもある。
- GNU拡張を有効にする
- Clang 16.0以降はC++17がデフォルトとなる。デフォルトバージョンのコンパイルオプションは
-std=gnu++17
- Clang 6.0以降は、
-std=c++2a
オプションを使用する。- GNU拡張を有効にする
-std=gnu++2a
オプションもある。
- GNU拡張を有効にする
- Clang 11.0以降は、
-std=c++20
オプションを使用する(以前までのオプションも使用できる)。- GNU拡張を有効にする
-std=gnu++20
オプションもある。
- GNU拡張を有効にする
- Clang 12.0以降は、
-std=c++2b
オプションを使用する。- GNU拡張を有効にする
-std=gnu++2b
オプションもある。
- GNU拡張を有効にする
- Clang 17.0以降は、
-std=c++23
オプションを使用する(以前までのオプションも使用できる)。- GNU拡張を有効にする
-std=gnu++23
オプションもある。
- GNU拡張を有効にする
- Clang 17.0以降は、
-std=c++2c
オプションを使用する。- GNU拡張を有効にする
-std=gnu++2c
オプションもある。
- GNU拡張を有効にする
このサイトでは GCC と呼ぶ
- GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF)
- Mingw-w64 - GCC for Windows 64 & 32 bits [mingw-w64]
- Fortran, C, C++ for Windows (MinGW バイナリ)
- gcc
- g++
- GCC 4.3から4.6までは、
-std=c++0x
オプションを使用する。- GNU拡張を有効にする
-std=gnu++0x
オプションもある。
- GNU拡張を有効にする
- GCC 4.7以降は、
-std=c++11
オプションを使用する (旧オプションは非推奨)。- GNU拡張を有効にする
-std=gnu++11
オプションもある。
- GNU拡張を有効にする
- GCC 4.8から4.9までは、
-std=c++1y
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1y
オプションもある。
- GNU拡張を有効にする
- GCC 5.1以降は、
-std=c++14
オプションを使用する (旧オプションは非推奨)。- GNU拡張を有効にする
-std=gnu++14
オプションもある。
- GNU拡張を有効にする
- GCC 6.1以降は、C++14がデフォルトとなる。デフォルトバージョンのコンパイルオプションは
-std=gnu++14
- GCC 6.1以降は、
-std=c++1z
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1z
オプションもある。
- GNU拡張を有効にする
- GCC 7.1以降は、
-std=c++17
オプションを使用する。- GNU拡張を有効にする
-std=gnu++17
オプションもある (旧オプションは非推奨)。
- GNU拡張を有効にする
- GCC 11.1以降は、C++17がデフォルトとなる。デフォルトバージョンのコンパイルオプションは
-std=gnu++17
- GCC 8.1以降は、
-std=c++2a
オプションを使用する。- GNU拡張を有効にする
-std=gnu++2a
オプションもある。
- GNU拡張を有効にする
- GCC 10.1以降は、
-std=c++20
オプションを使用する。- GNU拡張を有効にする
-std=gnu++20
オプションもある。
- GNU拡張を有効にする
- GCC 11.1以降は、
-std=c++23
オプションもしくは仮称バージョンの-std=c++2b
オプションを使用する。- GNU拡張を有効にする
-std=gnu++23
および-std=gnu++2b
オプションもある。
- GNU拡張を有効にする
このサイトでは ICC と呼ぶ。
- XLsoft エクセルソフト : インテル C++ Composer XE Linux 版/インテル C++ コンパイラー XE Linux 版 製品紹介
- XLsoft エクセルソフト : インテル C++ Composer XE Mac OS 版/インテル C++ コンパイラー XE Mac OS 版 製品紹介
- XLsoft エクセルソフト : インテル C++ Composer XE Windows 版/インテル C++ コンパイラー XE Windows 版 製品紹介
- ICC
- ICL
- Windowsでは
/Qstd:c++11
、Linux/macOSでは-std=c++11
オプションを使用する。
- ICC 16.0からは、Windowsでは
/Qstd:c++14
オプション、Linux/macOSでは-std=c++14
オプションを使用する。
- ICC 17.0からは、Windowsでは
/Qstd:c++17
オプション、Linux/macOSでは-std=c++17
オプションを使用する。
このサイトでは Visual C++ と呼ぶ。Visual Studio 2012 以降、Visual C++は独立した製品名ではなくなり製品Visual Studioのみに含まれるようになったが、当サイトでは製品に含まれているコンポーネント名としてのVisual C++を採用する。
- Visual Studio - Microsoft Developer Tools: Visual C++を含む統合開発環境。
- Build Tools for Visual Studio: コマンドラインのみからコンパイルするために必要な環境を構築するもの。
- VC
- VC++
- MSVC
- cl
以下に当サイトにおけるバージョン表記と、製品・バージョン等の対応を示す。
表記 | 製品名 [Visual Studio バージョン] †1 | VC++ バージョン †2 | _MSC_VER |
_MSC_FULL_VER |
---|---|---|---|---|
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 Update 1 | 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 バージョン 16.11.2 | 14.28 | 1929 | 192930133 |
2019 Update 9 | Visual Studio 2019 バージョン 16.9.2 | 14.28 | 1928 | 192829913 |
2019 Update 8 | Visual Studio 2019 バージョン 16.8.2 | 14.28 | 1928 | 192829334 |
2019 Update 8 | Visual Studio 2019 バージョン 16.8.1 | 14.28 | 1928 | 192829333 |
2019 Update 7 | Visual Studio 2019 バージョン 16.7 | 14.27 | 1927 | 192729112 |
2019 Update 6 | Visual Studio 2019 バージョン 16.6.2 | 14.26 | 1926 | 192628806 |
2019 Update 5 | Visual Studio 2019 バージョン 16.5.1 | 14.25 | 1925 | 192528611 |
2019 Update 4 | Visual Studio 2019 バージョン 16.4.0 | 14.24 | 1924 | 192428314 |
2019 Update 3 | Visual Studio 2019 バージョン 16.3.2 | 14.23 | 1923 | 192328105 |
2019 Update 2 | Visual Studio 2019 バージョン 16.2.3 | 14.22 | 1922 | 192227905 |
2019 Update 1 | Visual Studio 2019 バージョン 16.1.2 | 14.21 | 1921 | 192127702 |
2019 | Visual Studio 2019 バージョン 16.0.0 | 14.20 | 1920 | 192027508 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.11 | 14.16 | 1916 | 191627030 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.7 | 14.16 | 1916 | 191627027 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.5 | 14.16 | 1916 | 191627026 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.4 | 14.16 | 1916 | 191627025 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.1 | 14.16 | 1916 | 191627023 |
2017 Update 9 | Visual Studio 2017 バージョン 15.9.0 | 14.16 | 1916 | |
2017 Update 8 | Visual Studio 2017 バージョン 15.8.0 | 14.15 | 1915 | |
2017 Update 7 | Visual Studio 2017 バージョン 15.7.5 | 14.14 | 1914 | 191426433 |
2017 Update 7 | Visual Studio 2017 バージョン 15.7.3 | 14.14 | 1914 | 191426430 |
2017 Update 7 | Visual Studio 2017 バージョン 15.7.2 | 14.14 | 1914 | 191426429 |
2017 Update 7 | Visual Studio 2017 バージョン 15.7.1 | 14.14 | 1914 | 191426428 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.7 | 14.13 | 1913 | 191326132 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.6 | 14.13 | 1913 | 191326131 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.4 | 14.13 | 1913 | 191326129 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.3 | 14.13 | 1913 | 191326129 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.2 | 14.13 | 1913 | 191326128 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.1 | 14.13 | 1913 | 191326128 |
2017 Update 6 | Visual Studio 2017 バージョン 15.6.0 | 14.13 | 1913 | 191326128 |
2017 Update 5 | Visual Studio 2017 バージョン 15.5.7 | 14.12 | 1912 | 191225835 |
2017 Update 5 | Visual Studio 2017 バージョン 15.5.6 | 14.12 | 1912 | 191225835 |
2017 Update 5 | Visual Studio 2017 バージョン 15.5.4 | 14.12 | 1912 | 191225834 |
2017 Update 5 | Visual Studio 2017 バージョン 15.5.3 | 14.12 | 1912 | 191225834 |
2017 Update 5 | Visual Studio 2017 バージョン 15.5.2 | 14.12 | 1912 | 191225831 |
2017 Update 4 | Visual Studio 2017 バージョン 15.4.5 | 14.11 | 1911 | 191125547 |
2017 Update 4 | Visual Studio 2017 バージョン 15.4.4 | 14.11 | 1911 | 191125542 |
2017 Update 3 | Visual Studio 2017 バージョン 15.3.3 | 14.11 | 1911 | 191125507 |
2017 Update 2 †3 | Visual Studio 2017 バージョン 15.2 | 14.10 | 1910 | 191025017 |
2017 Update 1 †3 | Visual Studio 2017 バージョン 15.1 | 14.10 | 1910 | 191025017 |
2017 | Visual Studio 2017 バージョン 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 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 Update 1 †3 | Visual Studio 2013 Update 1 [12.0] | 12.0 | 1800 | 180021005 |
2013 | Visual Studio 2013 [12.0] | 12.0 | 1800 | 180021005 |
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] Visual C++ 2010 SP1 [10.0] |
10.0 | 1600 | 160040219 |
2010 | Visual Studio 2010 [10.0] Visual C++ 2010 [10.0] |
10.0 | 1600 | 160030319 |
2008 SP1 | Visual Studio 2008 SP1 [9.0] Visual C++ 2008 SP1 [9.0] |
9.0 | 1500 | 150030729 |
2008 | Visual Studio 2008 [9.0] Visual C++ 2008 [9.0] |
9.0 | 1500 | 150021022 |
2005 SP1 | Visual Studio 2005 SP1 [8.0] Visual C++ 2005 SP1 [8.0] |
8.0 | 1400 | 140050727 |
2005 | Visual Studio 2005 [8.0] Visual C++ 2005 [8.0] |
8.0 | 1400 | 140050320 |
Windows Server 2003 SP1 DDK (for AMD64) | 1400 | 140040310 | ||
2003 SP1 | Visual Studio .NET 2003 SP1 [7.1] 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] Visual C++ .NET 2003 [7.1] |
7.1 | 1310 | 13103077 |
Visual Studio Toolkit 2003 [7.1] | 7.1 | 1310 | 13103052 | |
Windows Server 2003 DDK | 1310 | 13102179 | ||
2002 | Visual Studio .NET 2002 [7.0] Visual C++ .NET 2002 [7.0] |
7.0 | 1300 | 13009466 |
Windows XP SP1 DDK | 1300 | 13009176 | ||
6.0 SP6 | Visual Studio 6.0 SP6 Visual C++ 6.0 SP6 |
6.0 | 1200 | 12008804 |
6.0 SP5 | Visual Studio 6.0 SP5 Visual C++ 6.0 SP5 |
6.0 | 1200 | 12008804 |
Visual Studio 97 [5.0] 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 |
- ^ 製品名の列にはVisual C++コンパイラを含む実際に入手する製品の名称を示す。製品のエディション (Express/Standard/Professional/Enterprise/Community 他) は省略する。Visual Studioの製品バージョンは、製品名に現れていないときは
[ ~ ]
内に記す。製品バージョンは、2017以降、メインメニューの [ヘルプ]-[Microsoft Visual Studio のバージョン情報] から確認できるものを指す。 - ^ VC++バージョンの列にはVisual C++ツールセットのバージョンを記述する。この表では特にVisual C++を入れた時に既定で選択されるツールセットのみについて扱う。Visual Studio 2022においては
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC
配下のフォルダ名(14.39.33519
など)で確認できる。 - ^ a b c IDEのみ修正され、コンパイラ、ヘッダー、ライブラリ等は変更されなかった。
- C++17 Features And STL Fixes In VS 2017 15.3 | Visual C++ Team Blog - "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
- ^ 2017は2015とバイナリ互換が保たれているためメジャーバージョンアップは行われなかった。その結果、製品バージョンとVisual C++バージョンが一致しなくなった。 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++ の [警告] を参照。
- 2017 Update 5からside-by-sideがサポートされ、一つの製品内で同時に複数のVisual C++ツールセットを選択できるようになった。 Side-by-side minor version MSVC toolsets in Visual Studio 2017 | Visual C++ Team Blog
- C++11は常に有効である
- C++14は常に有効である
- 2015 Update 3から
/std:c++14
オプションが導入されたが既定値でありC++14を無効化する機能は提供されていない。_MSVC_LANG
マクロの値は201402
になる
- 2015 Update 2以前に実装された機能については、互換性の観点から常に有効である
- 2015 Update 3以降に実装された機能については、
/std:c++17
オプションを使用する。_MSVC_LANG
マクロの値は201703
になる
- 2019以降に実装された機能については、
/std:c++latest
オプションを使用する
- 2015 Update 3以降は
/std:c++latest
オプションを使用する - -std (Specify Language Standard Version) | Microsoft Docs
- Predefined Macros | Microsoft Docs
- Standards version switches in the compiler