• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

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

    • Clang 6.0以降は、-std=c++2aオプションを使用する。
      • GNU拡張を有効にする-std=gnu++2aオプションもある。
    • Clang 11.0以降は、-std=c++20オプションを使用する(以前までのオプションも使用できる)。
      • GNU拡張を有効にする-std=gnu++20オプションもある。

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

    • Clang 12.0以降は、-std=c++2bオプションを使用する。
      • GNU拡張を有効にする-std=gnu++2bオプションもある。
    • Clang 17.0以降は、-std=c++23オプションを使用する(以前までのオプションも使用できる)。
      • GNU拡張を有効にする-std=gnu++23オプションもある。

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

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

    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オプションもある。
    • GCC 7.1以降は、-std=c++17オプションを使用する。
      • GNU拡張を有効にする-std=gnu++17オプションもある (旧オプションは非推奨)。
    • GCC 11.1以降は、C++17がデフォルトとなる。デフォルトバージョンのコンパイルオプションは-std=gnu++17

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

    • GCC 8.1以降は、-std=c++2aオプションを使用する。
      • GNU拡張を有効にする-std=gnu++2aオプションもある。
    • GCC 10.1以降は、-std=c++20オプションを使用する。
      • GNU拡張を有効にする-std=gnu++20オプションもある。

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

    • GCC 11.1以降は、-std=c++23オプションもしくは仮称バージョンの-std=c++2bオプションを使用する。
      • GNU拡張を有効にする-std=gnu++23および-std=gnu++2bオプションもある。

    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++ と呼ぶ。Visual Studio 2012 以降、Visual C++は独立した製品名ではなくなり製品Visual Studioのみに含まれるようになったが、当サイトでは製品に含まれているコンポーネント名としてのVisual C++を採用する。

    別名

    • VC
    • VC++
    • MSVC
    • cl

    バージョンの表記

    以下に当サイトにおけるバージョン表記と、製品・バージョン等の対応を示す。

    表記 製品名 [Visual Studio バージョン] †1 VC++ バージョン †2 _MSC_VER _MSC_FULL_VER
    2022 Update 13 Visual Studio 2022 Version 17.13.2 14.43 1943 194334808
    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 バージョン 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
    1. ^ 製品名の列にはVisual C++コンパイラを含む実際に入手する製品の名称を示す。製品のエディション (Express/Standard/Professional/Enterprise/Community 他) は省略する。Visual Studioの製品バージョンは、製品名に現れていないときは [ ~ ] 内に記す。製品バージョンは、2017以降、メインメニューの [ヘルプ]-[Microsoft Visual Studio のバージョン情報] から確認できるものを指す。
    2. ^ VC++バージョンの列にはVisual C++ツールセットのバージョンを記述する。この表では特にVisual C++を入れた時に既定で選択されるツールセットのみについて扱う。Visual Studio 2022においてはC:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC配下のフォルダ名(14.39.33519など)で確認できる。
    3. ^ a b c IDEのみ修正され、コンパイラ、ヘッダー、ライブラリ等は変更されなかった。
    4. ^ 2017は2015とバイナリ互換が保たれているためメジャーバージョンアップは行われなかった。その結果、製品バージョンとVisual C++バージョンが一致しなくなった。 Binary Compatibility and Pain-free Upgrade: Why Moving to Visual Studio 2017 is almost “too easy”

    5. 2015以降、Visual Studioの既定のインストールではVisual C++は入らなくなった。Visual StudioのインストーラでVisual C++コンポーネントを選択する必要がある。 Visual Studio 2015 の Visual C++ の [警告] を参照。

    6. 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++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になる

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

    • 2019以降に実装された機能については、/std:c++latestオプションを使用する

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