Clang
このサイトでは Clang と呼ぶ。「クラン(グ)」と読む。
別名
- clang
- clang++
- Apple LLVMコンパイラ
C++11の機能を有効にする
-std=c++11
オプションを使用する。
C++14の機能を有効にする
- 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
C++17の機能を有効にする
- Clang 3.5から4.0までは、
-std=c++1z
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1z
オプションもある。
- GNU拡張を有効にする
- Clang 5.0以降は、
-std=c++17
オプションを使用する(以前までのオプションも使用できる)。- GNU拡張を有効にする
-std=gnu++17
オプションもある。
- GNU拡張を有効にする
C++20の機能を有効にする
- Clang 6.0以降は、
-std=c++2a
オプションを使用する。
GNU Compiler Collection
このサイトでは GCC と呼ぶ
- GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF)
- MinGW | Minimalist GNU for Windows
- Fortran, C, C++ for Windows (MinGW バイナリ)
別名
- gcc
- g++
C++11の機能を有効にする
- GCC 4.3から4.6までは、
-std=c++0x
オプションを使用する。- GNU拡張を有効にする
-std=gnu++0x
オプションもある。
- GNU拡張を有効にする
- GCC 4.7以降は、
-std=c++11
オプションを使用する(旧オプションは非推奨)。- GNU拡張を有効にする
-std=gnu++11
オプションもある。
- GNU拡張を有効にする
C++14の機能を有効にする
- 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
C++17の機能を有効にする
- GCC 6.1以降は、
-std=c++1z
オプションを使用する。- GNU拡張を有効にする
-std=gnu++1z
オプションもある。
- GNU拡張を有効にする
Intel C++ Compiler
このサイトでは 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
C++11の機能を有効にする
- Windowsでは
/Qstd:c++11
、Linux/macOSでは-std=c++11
オプションを使用する。
C++14の機能を有効にする
- ICC 16.0からは、Windowsでは
/Qstd:c++14
オプション、Linux/macOSでは-std=c++14
オプションを使用する。
C++17の機能を有効にする
- ICC 17.0からは、Windowsでは
/Qstd:c++17
オプション、Linux/macOSでは-std=c++17
オプションを使用する。
Microsoft Visual C++
このサイトでは Visual C++ と呼ぶ。
- Visual Studio - Microsoft Developer Tools: Visual C++を含む統合開発環境。
- Visual C++ Build Tools: コンパイラおよび関連ツールのみのパッケージ。
別名
- VC
- VC++
- MSVC
- cl
バージョンの表記
厳密にはVisual C++はVisual Studioに統合されていて個別の製品名を持たなくなっているが、このサイトでは便宜上Visual C++と呼ぶ。
名称 | 製品バージョン | Visual C++ バージョン | _MSC_VER |
_MSC_FULL_VER |
---|---|---|---|---|
Visual C++ 2017 Update 6 | 15.6 | 14.13 | 1913 | 191326128 |
Visual C++ 2017 Update 5 | 15.5.7 | 14.12 | 1912 | 191225835 |
Visual C++ 2017 Update 5 | 15.5.6 | 14.12 | 1912 | 191225835 |
Visual C++ 2017 Update 5 | 15.5.4 | 14.12 | 1912 | 191225834 |
Visual C++ 2017 Update 5 | 15.5.2 | 14.12 | 1912 | 191225831 |
Visual C++ 2017 Update 4 | 15.4.5 | 14.11 | 1911 | 191125547 |
Visual C++ 2017 Update 4 | 15.4.4 | 14.11 | 1911 | 191125542 |
Visual C++ 2017 Update 3 | 15.3.3 | 14.11 | 1911 | 191125507 |
Visual C++ 2017 [§注1] | 15.0 | 14.10 | 1910 | 191025017 |
Visual C++ 2015 Update 3 | 14.0 | 14.0 | 1900 | 190024210 |
Visual C++ 2015 Update 2 | 14.0 | 14.0 | 1900 | 190023918 |
Visual C++ 2015 Update 1 | 14.0 | 14.0 | 1900 | 190023506 |
Visual C++ 2015 | 14.0 | 14.0 | 1900 | 190023026 |
Visual C++ 2013 Update 5 | 12.0 | 12.0 | 1800 | 180040629 |
Visual C++ 2013 Update 4 | 12.0 | 12.0 | 1800 | 180031101 |
Visual C++ 2013 Update 3 | 12.0 | 12.0 | 1800 | 180030723 |
Visual C++ 2013 Update 2 | 12.0 | 12.0 | 1800 | 180030501 |
Visual C++ 2013 Update 1 [§注2] | 12.0 | 12.0 | 1800 | 180021005 |
Visual C++ 2013 | 12.0 | 12.0 | 1800 | 180021005 |
Visual C++ 2012 Update 4 | 11.0 | 11.0 | 1700 | 170061030 |
Visual C++ 2012 Update 3 | 11.0 | 11.0 | 1700 | 170060610 |
Visual C++ 2012 Update 2 | 11.0 | 11.0 | 1700 | 170060315 |
Visual C++ 2012 Update 1 | 11.0 | 11.0 | 1700 | 170051106 |
Visual C++ 2012 | 11.0 | 11.0 | 1700 | 170050727 |
Visual C++ 2010 SP1 | 10.0 | 10.0 | 1600 | 160040219 |
Visual C++ 2010 | 10.0 | 10.0 | 1600 | 160030319 |
Visual C++ 2008 SP1 | 9.0 | 9.0 | 1500 | 150030729 |
Visual C++ 2008 | 9.0 | 9.0 | 1500 | 150021022 |
Visual C++ 2005 SP1 | 8.0 | 8.0 | 1400 | 140050727 |
Visual C++ 2005 | 8.0 | 8.0 | 1400 | 140050320 |
Windows Server 2003 SP1 DDK (for AMD64) | 1400 | 140040310 | ||
Visual C++ .NET 2003 SP1 | 7.1 | 7.1 | 1310 | 13106030 |
Windows Server 2003 SP1 DDK | 1310 | 13104035 | ||
Visual C++ .NET 2003 | 7.1 | 7.1 | 1310 | 13103077 |
Visual C++ Toolkit 2003 | 7.1 | 7.1 | 1310 | 13103052 |
Windows Server 2003 DDK | 1310 | 13102179 | ||
Visual C++ .NET | 7.0 | 7.0 | 1300 | 13009466 |
Windows XP SP1 DDK | 1300 | 13009176 | ||
Visual C++ 6.0 SP5 | 6.0 | 6.0 | 1200 | 12008804 |
Visual C++ 5.0 [§注3] | 5.0 | 5.0 | 1100 | |
Visual C++ 4.2 | 4.2 | 4.2 | 1020 | |
Visual C++ 4.1 | 4.1 | 4.1 | 1010 | |
Visual C++ 4.0 | 4.0 | 4.0 | 1000 | |
Visual C++ 2.0 | 2.0 | 2.0 | 900 | |
Visual C++ 1.0 | 1.0 | 1.0 | 800 | |
Microsoft C/C++ 7.0 | 700 | |||
Microsoft C 6.0 | 600 |
注釈
- ^ Visual C++ 2017はVisual C++ 2015とバイナリ互換が保たれているためメジャーバージョンアップは行われなかった。その結果、製品バージョンとVisual C++バージョンが一致しなくなった。 Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”
- ^ Visual C++ 2013 Update1ではIDEのみ修正され、コンパイラ、ヘッダー、ライブラリ等は一切変更されなかった。
- ^ Visual C++ 5.0はVisual Studio 97にも収録されている。
C++11の機能を有効にする
- C++11は常に有効である
C++14の機能を有効にする
- C++14は常に有効である
- 2015 Update 3から
/std:c++14
オプションが導入されたが既定値でありC++14を無効化する機能は提供されていない。_MSVC_LANG
マクロの値は201402
になる
C++17の機能を有効にする
- 2015 Update 2以前に実装された機能については、互換性の観点から常に有効である
- 2015 Update 3以降に実装された機能については、
/std:c++17
オプションを使用する。_MSVC_LANG
マクロの値は201703
になる
最新バージョンの言語機能を有効にする
- 2015 Update 3以降は
/std:c++latest
オプションを使用する - -std (Specify Language Standard Version) | Microsoft Docs
- Predefined Macros | Microsoft Docs
- Standards version switches in the compiler