名前空間
変種
操作

C++14

From cppreference.com
< cpp

C++14は、メジャーバージョンであるC++11に続くマイナーバージョンであり、主に小規模な改善と不具合の修正を特徴としています。その承認は2014年8月18日に発表され、2014年12月15日にリリースされました。

承認前には、2010年代のリリースを示すためにC++1yが使われることがありました。

目次

[編集] 新しい言語機能

[編集] 新しいライブラリ機能

[編集] 欠陥報告

C++14で修正された欠陥報告(コア言語276件、ライブラリ158件)

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

[編集] C++14 言語コア機能

C++14の機能

 
提案文書

 
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++
文脈変換の文言調整 N3323 4.9 3.4 18.0* はい 4.9 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
2進数リテラル  (FTM)* N3472 4.3*
4.9
2.9 19.0 (2015)* はい 4.10 11.0 2015 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
decltype(auto), 通常関数の戻り値の型推論  (FTM)*  (FTM)* N3638 4.8 (部分的)*
4.9
3.3 (部分的)*
3.4
19.0 (2015)* はい 4.9 15.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
初期化/一般化されたラムダキャプチャ(初期化キャプチャ)  (FTM)* N3648 4.5 (部分的)
4.9
3.4 19.0 (2015)* はい 4.10 15.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.15
ジェネリックラムダ式  (FTM)* N3649 4.9 3.4 19.0 (2015)* はい 4.10 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
変数テンプレート  (FTM)* N3651 5 3.4 19.0 (Update 2)* はい 4.11 17.0 17.4 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
拡張されたconstexpr  (FTM)* N3652 5 3.4 19.10* はい 4.11 17.0 17.4 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.15
デフォルトメンバ初期化子を持つ集成体  (FTM)* N3653 5 3.3 19.10* はい 4.9 16.0 16.1 9.0 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.14
メモリ割り当ての省略/拡張 N3664 N/A 3.4 N/A はい N/A N/A 17.4 N/A 8.6  10.3 17.1.0 1.1.0 N/A N/A
[[deprecated]]属性 N3760 4.9 3.4 19.0 (2015)* はい 4.9 15.0*
16.0
16.1 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
サイズ付きデアロケーション  (FTM)* N3778 5 3.4 19.0 (2015)* はい 4.10.1 17.0 16.1 8.6  10.3 17.1.0 1.1.0 16.1.1* 5.14
桁区切りとしてのシングルクォート N3781 4.9 3.4 19.0 (2015)* はい 4.10 16.0 2015 9.0 8.6  10.3 17.1.0 1.1.0 13.1.2* 5.14
 

C++14の機能
 

提案文書
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++

[編集] C++14 ライブラリ機能

C++14の機能

 
提案文書

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
 
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
<complex>constexpr N3302 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
透過的な演算子関数オブジェクト  (FTM)* N3421 4.9 3.4 18.0* Yes  17.1.0 5.15 10.3
std::result_ofSFINAE  (FTM)* N3462 5 はい 19.0 (Update 2)* Yes  17.1.0 5.15 10.3
<chrono>constexpr N3469 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
<array>constexpr N3470 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
<initializer_list><utility><tuple>constexpr N3471 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
改善されたstd::integral_constant  (FTM)* N3545 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
<chrono><string>ユーザー定義リテラル  (FTM)*  (FTM)* N3642 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
Null前方イテレータ  (FTM)* N3644 5 (部分的)
10
3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
std::quoted  (FTM)* N3654 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
std::make_unique  (FTM)* N3656 4.9 3.4 18.0* Yes  17.1.0 5.15 10.3
異種連想コンテナ検索  (FTM)* N3657 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
std::integer_sequence  (FTM)* N3658 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
std::shared_timed_mutex N3659 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
std::exchange  (FTM)* N3668 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
constでないconstexprメンバ関数の修正 N3669 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
型によるタプルのアドレッシング: std::get<T>()  (FTM)* N3670 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
2つの範囲を取るstd::equal, std::is_permutation, std::mismatch  (FTM)* N3671 5 3.4 19.0 (2015)* Yes  17.1.0 5.15 10.3
変換特性のエイリアステンプレート  (FTM)* N3655 4.9 3.4 18.0* Yes 
std::complexのユーザー定義リテラル  (FTM)* N3779 4.9 3.4 19.0 (2015)* Yes 
DR11: std::is_null_pointer  (FTM)* LWG2247 4.9 3.4 19.0 (2015)*  
std::is_final  (FTM)* LWG2112 5 3.4 19.0 (2015)*  
std::make_reverse_iterator  (FTM)* LWG2285 5 3.4 19.0 (2015)*  
std::shared_timed_mutex  (FTM)* N3891 4.9 3.5 19.0 (2015)* Yes 
std::tuple_element_t  (FTM)* N3887 4.10* 3.5 19.0 (2015)* Yes 
 

C++14の機能
 

提案文書
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++14 - Wikipedia
2.  動作するC++14のサンプル
English 日本語 中文(简体) 中文(繁體)