名前空間
変種
操作

C++11

From cppreference.com
< cpp

C++11はC++の2番目のメジャーバージョンであり、C++98以来の最も重要なアップデートです。既存のプラクティスを標準化し、C++プログラマが利用できる抽象化を改善するために、多数の変更が導入されました。

2011年8月12日にISOによって最終的に承認される前は、2010年より前に公開されると予想されていたため、「C++0x」という名前が使用されていました。C++03からC++11までの間は8年かかり、これまででバージョン間の最も長い間隔となりました。それ以来、現在、C++は定期的に3年ごとに更新されています。

以下の機能がC++11にマージされました

目次

[編集] コア言語機能

[編集] ライブラリ機能

[編集] ヘッダ

[編集] ライブラリ機能

[編集] 欠陥報告

C++11で修正された欠陥報告 (コア741件、ライブラリ868件)
  1. 1.0 1.1 1.2 これらの欠陥の解決により以下のメンバ関数が追加されましたが、libstdc++ の C++98 モードでは利用できません:

[編集] コンパイラサポート

[編集] 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_tchar32_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
型特性のコンパイラサポート。 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
参照修飾子  (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
overridefinal 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
型特性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
通貨、時間、およびhexfloat I/Oマニピュレータ N2071
N2072
5 3.8 19.0 (2015)* Yes  17.1.0 5.15
COW (copy-on-write) std::basic_string の禁止 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*

* - 星印*が付いているセルにカーソルを合わせると、追加のポップアップノートが表示されます。
DRnn - 「DR」の後の数字nnは、欠陥報告が適用される対象のC++リビジョンを示します。例: DR20 → C++20

[編集] 外部リンク

1.  C++11 - Wikipedia
2.  動作するC++11のサンプル
English 日本語 中文(简体) 中文(繁體)