最終更新日時(UTC):
が更新

履歴 編集

処理系

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オプションもある。
  • Clang 3.5以降は、-std=c++14オプションを使用する(以前までのオプションも使用できる)。
    • GNU拡張を有効にする-std=gnu++14オプションもある。

C++17の機能を有効にする

  • Clang 3.5から4.0までは、-std=c++1zオプションを使用する。
    • GNU拡張を有効にする-std=gnu++1zオプションもある。
  • Clang 5.0以降は、-std=c++17オプションを使用する(以前までのオプションも使用できる)。
    • GNU拡張を有効にする-std=gnu++17オプションもある。

GNU Compiler Collection

このサイトでは GCC と呼ぶ

別名

  • gcc
  • g++

C++11の機能を有効にする

  • GCC 4.3から4.6までは、-std=c++0xオプションを使用する。
    • GNU拡張を有効にする-std=gnu++0xオプションもある。
  • GCC 4.7以降は、-std=c++11オプションを使用する(旧オプションは非推奨)。
    • GNU拡張を有効にする-std=gnu++11オプションもある。

C++14の機能を有効にする

  • GCC 4.8から4.9までは、-std=c++1yオプションを使用する。
    • GNU拡張を有効にする-std=gnu++1yオプションもある。
  • GCC 5.1以降は、-std=c++14オプションを使用する(旧オプションは非推奨)。
    • GNU拡張を有効にする-std=gnu++14オプションもある。
  • GCC 6.1以降は、C++14がデフォルトとなる。デフォルトバージョンのコンパイルオプションは-std=gnu++14

C++17の機能を有効にする

  • GCC 6.1以降は、-std=c++1zオプションを使用する。
    • GNU拡張を有効にする-std=gnu++1zオプションもある。

Intel C++ Compiler

このサイトでは ICC と呼ぶ。

別名

  • 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++ と呼ぶ。

別名

  • VC
  • VC++
  • MSVC
  • cl

バージョンの表記

このサイトでは Visual C++ 2015 Update 5 のように、製品の西暦バージョン + アップデート番号で表記する。

製品名 製品バージョン Visual C++ バージョン _MSC_VER _MSC_FULL_VER
Visual Studio 2017 15.5 1912
Visual Studio 2017 15.4.5 14.1 1911 191125547
Visual Studio 2017 15.4.4 14.1 1911 191125542
Visual Studio 2017 15.3.3 14.1 1911 191125507
Visual Studio 2017 [§注1] 15.0 14.1 1910 191025017
Visual Studio 2017 RC 14.1 1910 191024930
Visual Studio 2015 Update3 14.0 14.0 1900 190024210
Visual Studio 2015 Update2 14.0 14.0 1900 190023918
Visual Studio 2015 Update2 RC 14.0 14.0 1900 190023824
Visual Studio 2015 Update1 14.0 14.0 1900 190023506
Visual Studio 2015 14.0 14.0 1900 190023026
Visual Studio 2015 Preview/Beta/RC 14.0 14.0 1900
Visual Studio 2013 Nobemver CTP 12.0 12.0 1800 180021114
Visual Studio 2013 Update5 12.0 12.0 1800 180040629
Visual Studio 2013 Update4 12.0 12.0 1800 180031101
Visual Studio 2013 Update3 12.0 12.0 1800 180030723
Visual Studio 2013 Update2 12.0 12.0 1800 180030501
Visual Studio 2013 Update2 RC 12.0 12.0 1800 180030324
Visual Studio 2013 Update1 [§注2] 12.0 12.0 1800 180021005
Visual Studio 2013 RTM 12.0 12.0 1800 180021005
Visual Studio 2013 RC 12.0 12.0 1800 180020827
Visual Studio 2013 Preview 12.0 12.0 1800 180020617
Visual Studio 2012 November CTP 11.0 11.0 1700 170051025
Visual Studio 2012 Update4 11.0 11.0 1700 170061030
Visual Studio 2012 Update3 11.0 11.0 1700 170060610
Visual Studio 2012 Update2 11.0 11.0 1700 170060315
Visual Studio 2012 Update1 11.0 11.0 1700 170051106
Visual Studio 2012 RTM 11.0 11.0 1700 170050727
Visual Studio 2012 Beta/RC/PR 11.0 11.0 1700
Visual Studio 2010 Update1 10.0 10.0 1600 160040219
Visual Studio 2010 RTM 10.0 10.0 1600 160030319
Visual Studio 2010 RC 10.0 10.0 1600
Visual Studio 2010 Beta 2 10.0 10.0 1600 160021003
Visual Studio 2010 Beta 1 10.0 10.0 1600 160020506
Visual Studio 2008 Update1 9.0 9.0 1500 150030729
Visual Studio 2008 RTM 9.0 9.0 1500 150021022
Visual Studio 2008 RC 9.0 9.0 1500
Visual Studio 2008 Beta 2 9.0 9.0 1500 150020706
Visual Studio 2008 Beta 1 9.0 9.0 1500
Visual Studio 2005 (Visual C++ 8.0) SP1 8.0 8.0 1400 140050727
Visual Studio 2005 (Visual C++ 8.0) RTM 8.0 8.0 1400 140050320
Visual Studio 2005 (Visual C++ 8.0) RC 8.0 8.0 1400
Visual Studio 2005 (Visual C++ 8.0) Beta 2 8.0 8.0 1400 140050215
Visual Studio 2005 (Visual C++ 8.0) Beta 1 8.0 8.0 1400 140040607
Visual Studio 2005 (Visual C++ 8.0) Preview 8.0 8.0 1400
Windows Server 2003 SP1 DDK (for AMD64) 1400 140040310
Visual Studio .NET 2003 (Visual C++ 7.1) SP1 7.1 7.1 1310 13106030
Windows Server 2003 SP1 DDK 7.1 7.1 1310 13104035
Visual Studio .NET 2003 (Visual C++ 7.1) RTM 7.1 7.1 1310 13103077
Visual C++ Toolkit 2003 7.1 7.1 1310 13103052
Visual Studio .NET 2003 (Visual C++ 7.1) Beta 7.1 7.1 1310 13102292
Windows Server 2003 DDK 1310 13102179
Visual Studio .NET 2002 (Visual C++ 7.0) 7.0 7.0 1300 13009466
Windows XP SP1 DDK 1300 13009176
Visual Studio 6.0 (Visual C++ 6.0) SP5 6.0 6.0 1200 12008804
Visual Studio 97 (Visual C++ 5.0) 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
C/C++ Compiler 7.0 700
C Compiler 6.0 600

注釈

  1. ^ Visual Studio 2017では製品バージョンとVisual C++のバージョンが一致しない。
    https://qiita.com/Chironian/items/1432eb8b59eb2eefcd2d
  2. ^ Visual Studio 2013 Update1では_MSC_FULL_VERは変更されなかった。
    https://blogs.msdn.microsoft.com/bharry/2014/01/20/vs-2013-1-update-1-is-available/#div-comment-125661

C++14の機能を有効にする

  • 14.0 Update 2までは、言語のバージョンを切り替える機能はなく、そのリリース時の最新言語バージョンが有効となる
  • 14.0 Update 3からは、/std:c++14オプションを使用する。とくに指定しない場合はデフォルトでC++14が有効となる。この時_MSVC_LANGマクロが201402になる

C++17の機能を有効にする

  • 15.3からは、/std:c++17オプションを使用する。この時_MSVC_LANGマクロが201703になる

最新バージョンの言語機能を有効にする