C++11のコンパイラサポート
From cppreference.com
< cpp | compiler support
* - 星印*が付いているセルにカーソルを合わせると、追加のポップアップノートが表示されます。
DRnn - 「DR」の後の数字nnは、欠陥報告が適用される対象のC++リビジョンを示します。例: DR20 → C++20
[編集] C++11 コア言語機能
| C++11 機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
Embarcadero C++ Builder |
IBM Open XL C++ for AIX |
IBM Open XL C++ for z/OS |
IBM XL C++ |
Sun/Oracle C++ |
HP aCC |
Digital Mars C++ |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C99 プリプロセッサ | N1653 | 4.3 | はい | 19.0 (2015)* (部分)* 19.26* |
はい | 4.1 | 11.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 10.1 | 5.9 | A.06.25 | はい | |
| static_assert (FTM)* | N1720 | 4.3 | 2.9 | 16.0* | はい | 4.1 | 11.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | 8.52 | |
| 右山括弧 | N1757 | 4.3 | はい | 14.0* | はい | 4.1 | 11.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | |||
| 拡張friend宣言 | N1791 | 4.7 | 2.9 | 16.0* | はい | 4.1 | 11.1 (部分) 12.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
long long
|
N1811 | はい | はい | 14.0* | はい | はい | はい | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | はい | はい | はい | はい | |
| auto | N1984 | 4.4 | はい | 16.0* | はい | 3.9 | 11.0 (部分)* 12.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
| 委譲コンストラクタ (FTM)* | N1986 | 4.7 | 3.0 | 18.0* | はい | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.28 | ||
| extern template | N1987 | 3.3 | はい | 12.0* | はい | 3.9 | 9.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.25 | ||
| constexpr (FTM)* | N2235 | 4.6 | 3.1 | 19.0 (2015)* | はい | 4.6 | 13.0 (部分) 14.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 (部分) 13.1 |
5.13 | A.06.28 | ||
char16_t と char32_t (FTM)* |
N2249 | 4.4 | 2.9 | 19.0 (2015)* | はい | 4.4 | 12.1 (部分)* 14.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | 8.52 | |
| 型特性 (type traits) のコンパイラサポート。 N2255* | N2255 N2984 N3142 |
4.3 (部分)* 4.8 (部分)* 5 |
3.0 | 14.0* (部分的)* 19.0 (2015)* |
はい | 4.0 | 10.0 | 2015 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.3 | 5.13 | 6.16 | |||
| テンプレートエイリアス (FTM)* | N2258 | 4.7 | 3.0 | 18.0* | はい | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | ||
| alignas | N2341 | 4.8 | 3.0 | 19.0 (2015)* | はい | 4.8 | 15.0 | 2015 | 7.0 | 8.6 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | |||
| alignof | N2341 | 4.5 | 2.9 | 19.0 (2015)* | はい | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | |||
| Defaulted/deleted関数 | N2346 | 4.4 | 3.0 | 18.0* | はい | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1 | 5.13 | A.06.25 | ||
強く型付けされたenum
|
N2347 | 4.4 | 2.9 | 16.0* (部分) 17.0* |
はい | 4.0 | 13.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.25 | ||
| アトミック操作 | N2427 | 4.4 | 3.1 | 17.0* | はい | はい | 13.0 | 2015 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.14 | ||||
| nullptr | N2431 | 4.6 | 2.9 | 16.0* | はい | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1 | 5.13 | A.06.27 | 8.52 | |
| 明示的な変換演算子 | N2437 | 4.5 | 3.0 | 18.0* | はい | 4.4 | 13.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.27 | ||
| ref修飾子 (FTM)* | N2439 | 4.8.1 | 2.9 | 19.0 (2015)* | はい | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| Unicode文字列リテラル (FTM)* | N2442 | 4.4 | 3.0 | 19.0 (2015)* | はい | 4.7 | 11.0* | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 10.1* 13.1.1* |
5.7 | A.06.28 | 8.52 | |
| Raw文字列リテラル (FTM)* | N2442 | 4.5 | はい | 18.0* | はい | 4.7 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1, ただし AIX xlC 13.1.3 を除く* | 5.13 | A.06.28 | 8.52 | |
| インライン名前空間 | N2535 | 4.4 | 2.9 | 19.0 (2015)* | はい | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 | 5.13 | A.06.28 | ||
| 継承コンストラクタ (FTM)* | N2540 | 4.8 | 3.3 | 19.0 (2015)* | はい | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | |||
| 後置き戻り値型 | N2541 | 4.4 | 2.9 | 16.0* | はい | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.27 | ||
| 制限のないunion | N2544 | 4.6 | 3.0 | 19.0 (2015)* | はい | 4.6 | 14.0* | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| 可変引数テンプレート (FTM)* | N2242 N2555 |
4.3 (部分)* 4.4 |
2.9 | 18.0* | はい | 4.3 (部分)* 4.3 |
12.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 (部分)* | 5.13 | A.06.27 | ||
| 式SFINAE | N2634 | 4.4 | 2.9 | 19.14* | はい | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | |||||
| ローカル型と無名型をテンプレートパラメータとして使用 | N2657 | 4.5 | 2.9 | 16.0* | はい | 4.2 | 12.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.27 | ||
| スレッドローカルストレージ | N2659 | 4.4 (部分) 4.8 |
3.3* | 16.0* (部分) 19.0 (2015)* |
はい | 4.8 | 11.1 (部分) 15.0* |
2015 | 8.4 | はい | 17.1.0 | 1.1.0 | 10.1 (部分)* 13.1.2 (部分)* |
5.9 (部分) | 8.52 (部分) | |||
| 並行性を持つ動的初期化と破棄 (マジックスタティック) (FTM)* | N2660 | 4.3 | 2.9 | 19.0 (2015)* | はい | はい | 11.1* | 2015 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.25 | |||
| ガベージコレクションと到達可能性ベースのリーク検出 | N2670 | |||||||||||||||||
| 初期化子リスト (FTM)* | N2672 | 4.4 | 3.1 | 18.0* | はい | 4.5 | 13.0 (部分) 14.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| 非静的メンバの初期化子 (FTM)* | N2756 | 4.7 | 3.0 | 18.0* | はい | 4.6 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
属性, [[noreturn]] (FTM)* |
N2761 | 4.8 | 3.3 | 19.0 (2015)* | はい | 4.2 | 12.1 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.27 | ||
[[carries_dependency]] |
N2556 N2643 |
3.3* | 17.1.0* | |||||||||||||||
enumの前方(非透過)宣言
|
N2764 | 4.6 | 3.1 | 17.0* | はい | 4.5 | 11.1 (部分) 14.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | |||
| ユーザー定義リテラル (FTM)* | N2765 | 4.7 | 3.1 | 19.0 (2015)* | はい | 4.8 | 15.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.14 | |||
| 右辺値参照 (FTM)* | N2118 N2844 CWG1138 |
4.3 (部分)* 4.5 |
2.9 | 16.0* (部分)* 17.0* |
はい | 4.5 | 11.1 (部分)* 12.0 (部分)* 14.0 |
2015 | 7.0* | 8.4 | はい | 17.1.0 | 1.1.0 | 12.1 | 5.13 | A.06.25 | ||
| ラムダ式 (FTM)* | N2550 N2658 N2927 |
4.5 | 3.1 | 16.0* (部分)* 17.0* |
はい | 4.1 | 12.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.25 | ||
| 範囲forループ (FTM)* | N2930 N3271 |
4.6 | 3.0 | 17.0* | はい | 4.5 | 13.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.2* | 5.13 | A.06.28 | ||
| noexcept | N3050 | 4.6 | 3.0 | 19.0 (2015)* | はい | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | A.06.28 | ||
| Defaultedムーブ特殊メンバ関数 | N3053 | 4.6 | 3.0 | 19.0 (2015)* | はい | 4.5 | 14.0 | 2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 5.13 | A.06.25 | |||
| override と final | N2928 N3206 N3272 |
4.7 | 2.9 | 14.0* (部分) 17.0* |
はい | 4.8 | 12.0 (部分)* 14.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 13.1.1* | 5.13 | |||
| decltype (FTM)* | N2343 N3276 |
4.3 (部分)* 4.8.1 |
2.9 | 16.0* (部分)* 17.0* |
はい | 4.2 (部分)* 4.8 |
11.0 (部分)* 12.0 |
2015 | 7.0 | 8.4 | はい | 17.1.0 | 1.1.0 | 11.1 (部分)* | 5.13 | A.06.25 | 8.52 (部分)* | |
| C++11 機能 |
提案文書 |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
Nvidia HPC C++ (旧 PGI)* |
Nvidia nvcc |
Cray |
Embarcadero C++ Builder |
IBM Open XL C++ for AIX |
IBM Open XL C++ for z/OS |
IBM XL C++ |
Sun/Oracle C++ |
HP aCC |
Digital Mars C++ |
[編集] C++11 ライブラリ機能
| C++11 機能 |
提案文書 |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
IBM Open XL C/C++ for AIX* |
Sun/Oracle C++* |
Embarcadero C++ Builder* |
|
|---|---|---|---|---|---|---|---|---|---|
| 正規表現ライブラリ | N1429 | 4.9 | 2.8 | はい | Yes | 17.1.0 | |||
| 型特性 (type traits)。 N1836* | N1836 N2240 N2244 N2255 N2342 N2984 N3142 |
4.3 (部分)* 4.8 (部分)* 5 |
3.0 | 14.0* (部分的)* 19.0 (2015)* |
Yes | 17.1.0 | 5.13 | はい | |
コンテナのメンバ関数 cbegin, cend, crbegin, crend |
N1913 LWG1192 |
4.3 (部分)* 4.5 |
はい* | 16.0* | はい* | 17.1.0 | |||
| ガベージコレクションと到達可能性ベースのリーク検出(ライブラリサポート) | N2670 | 6 (no-op)* |
3.4 (no-op)* |
19.0 (2015)* (no-op)* |
はい (no-op)* |
17.1.0 | |||
| 通貨、時間、16進浮動小数点数のI/Oマニピュレータ | N2071 N2072 |
5 | 3.8 | 19.0 (2015)* | Yes | 17.1.0 | 5.15 | ||
| std::basic_stringでのCOW (コピーオンライト)の不許可 | N2668 | 5 | はい | はい | Yes | 17.1.0 | はい | ||
| C++11 機能 |
提案文書 |
GCC libstdc++ |
Clang libc++ |
MSVC STL |
Apple Clang* |
IBM Open XL C/C++ for AIX* |
Sun/Oracle C++* |
Embarcadero C++ Builder* |