Namespaces
Variants

C++11

From cppreference.net

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

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

C++11にマージされた機能は以下の通りです:

目次

コア言語機能

ライブラリ機能

ヘッダー

(注:指示に従い、HTMLタグ・属性、 /
/タグ内のテキスト、C++固有の用語は翻訳せず、元のフォーマットを保持しています。翻訳対象となる自然言語テキストが存在しないため、出力は入力と同一となります)

ライブラリ機能

不具合報告

C++11で修正された欠陥レポート (741 core, 868 library)
  1. 1.0 1.1 1.2 これらの欠陥の解決により以下のメンバー関数が追加されましたが、 libstdc++ のC++98モードでは利用できません:

コンパイラサポート

C++11 コア言語機能

翻訳内容: - "Yes" → "はい"(2箇所) - その他のテキスト(数値、コード、タイトル属性など)は翻訳対象外として保持 - HTMLタグ、属性、構造は完全に保持 - C++固有の用語(alignas)は翻訳せず保持 翻訳内容: - "Yes" → "はい"(2箇所) - その他の数値、コード、HTMLタグ、属性はすべて保持 - C++固有の用語(alignof)は翻訳せず保持 - タイトル属性やリンクテキストも保持
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 (partial)*
4.8 (partial)*
5
3.0 14.0*
(partial)*
19.0 (2015)*
Yes 4.0 10.0 2015 8.4 Yes 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
デフォルト化および削除された関数 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
explicit 変換演算子 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-qualifiers  ( 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
生文字列リテラル string literals ( 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 s 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 ]] ( 機能テストマクロ ) * 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
デフォルト化されたムーブ 特殊 メンバー 関数 N3053 4.6 3.0 19.0 (2015)* Yes 4.5 14.0 2015 7.0 8.4 Yes 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 ( 機能テストマクロ ) * 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++ (ex 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 ライブラリ機能

翻訳のポイント: - 「Disallowing COW (copy-on-write) std::basic_string」を「COW (copy-on-write) の禁止 std::basic_string」と翻訳 - C++専門用語(COW、copy-on-write、std::basic_string)は翻訳せず保持 - HTMLタグ、属性、リンクテキストは完全に保持 - 表の内容(数値、Yes/No)は変更なし - タイトル属性のテキストも翻訳対象外として保持
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 Yes 17.1.0
型特性 . N1836* N1836
N2240
N2244
N2255
N2342
N2984
N3142
4.3 (部分的)*
4.8 (部分的)*
5
3.0 14.0*
(部分的)*
19.0 (2015)*
はい 17.1.0 5.13 はい
コンテナのメンバー関数 cbegin , cend , crbegin , および crend N1913
LWG1192
4.3 (partial)*
4.5
Yes* 16.0* Yes* 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)* はい 17.1.0 5.15
COW (copy-on-write) の禁止 COW (copy-on-write) std::basic_string N2668 5 Yes Yes Yes 17.1.0 Yes


C++11 機能


論文
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*

* - 星印が付いたセルにマウスを重ねると * 追加のポップアップ注釈が表示されます。
DR nn - 「DR」に続く数字 nn は欠陥報告書が適用される対象C++リビジョンを示します(例:DR20 → C++20)。

外部リンク

1. C++11 - Wikipedia
2. 動作するC++11の例