最終更新日時(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オプションもある。
  • Clang 6.0以降は、C++14がデフォルトとなる。デフォルトバージョンのコンパイルオプションは-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オプションもある。

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

  • Clang 6.0以降は、-std=c++2aオプションを使用する。

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++は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

注釈

  1. ^ Visual C++ 2017はVisual C++ 2015とバイナリ互換が保たれているためメジャーバージョンアップは行われなかった。その結果、製品バージョンとVisual C++バージョンが一致しなくなった。 Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”
  2. ^ Visual C++ 2013 Update1ではIDEのみ修正され、コンパイラ、ヘッダー、ライブラリ等は一切変更されなかった。
  3. ^ 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になる

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