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
をサポート。ヘッダファイルがあるかどうかを調べられる。