C++17
T型 (トップレベルのcv修飾を無視する) の純粋右辺値式からT型のオブジェクトをコピー初期化および直接初期化するとき、純粋右辺値式からコピーコンストラクタやムーブコンストラクタが呼ばれなくなった。詳細は「コピーの省略」を参照のこと。
over-aligned なメモリ確保に関する拡張。
クラステンプレートの実引数推定 (Class Template Argument Deduction: CTAD)。コンストラクタの推定ガイドが導入されたことで、std::pair<double, bool>(5.0, false)のようなコンストラクタの引数の型や、std::make_pair(5.0, false)のようなヘルパー関数テンプレートが必要なくなり、std::pair(5.0, false)のように書くことができるようになった。
インライン変数により、単一定義規則(英語版)に反することなくヘッダファイルで変数を定義できるようになった。効果はインライン関数と同様である。
__has_includeでヘッダが利用可能かをプリプロセッサディレクティブで確認できるようになった。
__cplusplusの値は201703Lとなった。
例外指定が関数の型の一部となった。