https://gcc.gnu.org/gcc-5/changes.html
網羅的ではなく、気になったものだけ抽出して書いています。
C++11、C++14関係の対応状況は、cpprefjpサイトにもほぼ反映しました。
- C++14を全実装
- 変数テンプレート
- 宣言時のメンバ初期化を持つ型の集成体初期化を許可
constexprの制限緩和- サイズ付きデアロケーション
-std=c++14オプションが使えるようになる。旧-std=c++1yオプションは非推奨。- C++11周りのライブラリサポート改善
std::listのsize()メンバ関数が、デフォルトでO(1)になるstd::dequeとstd::vector<bool>に、ステートフルアロケータのサポートを追加。- iostreamのクラスに、ムーブと
swapのサポートを追加。 std::alignとstd::aligned_unionのサポートを追加。is_trivially_*系の型特性を追加。- IOマニピュレータの
put_time、hexfloat、defaultfloatのサポートを追加。 std::isblankをジェネリックなロケールで使えるようになった。std::shared_ptrのアトミック操作をサポート。std::notify_all_at_thread_exit()系の、スレッド終了時にfutureを準備完了状態にする機能をサポート。
- C++14ライブラリ
is_final型特性を実装
- C++14後のLibrary Fundamentals TSの機能を追加。
std::experimental名前空間で定義される。anyクラス(boost::anyと同じ)apply関数(タプルを展開して関数実行)sample関数(コンテナからN個の要素をランダム選択)search関数(文字列特化した探索アルゴリズム)- 変数テンプレートの型特性をいくつか
not_fn関数(not1とnot2を統合し、改善したもの)
- 新しい警告オプションとして、
-Wsuggest-final-typesが入る。「このクラスにはfinalを付けたほうがいいよ」とオススメしてくれる。 - 拡張機能として、乱数の分布クラス
logistic_distribution(ロジスティック分布)とuniform_on_sphere_distribution(球状の一様分布、Boost.Randomにある)を追加。 - IntelのCilk Plusをフルサポート。並列関係の新しい言語拡張。
- Clangにもある
__has_includeをサポート。ヘッダファイルがあるかどうかを調べられる。