C++20
2017年7月(トロント)にC++20ワーキングドラフトに適用された変更は次のとおりである:
コンセプト
指示付き初期化子
ラムダのキャプチャとしての[=, this]
ラムダのテンプレートパラメータリスト
配列のstd::make_sharedおよびstd::allocate_shared
2017年11月の秋の会議(アルバカーキ)でC++20ワーキングドラフトに適用された変更は次のとおりである:
「宇宙船演算子」operator <=>を使用した三方比較
範囲ベースのforステートメント内の追加変数の初期化
未評価コンテキストにおけるラムダ
デフォルトの構築可能で割り当て可能なステートレスラムダ
ラムダinit-captureでパック拡張を許可する
テンプレートパラメータとしての文字列リテラル
アトミックスマートポインター( std::atomic<shared_ptr<T>>やstd::atomic<weak_ptr<T>> )
ポインタを生ポインタに変換するstd::to_address
2018年3月(ジャクソンビル)のC++20ワーキングドラフトに適用された変更は次のとおりである:
特定の状況におけるtypenameの必要性の除去
新しい標準属性[[no_unique_address]] 、[[likely]]および[[unlikely]]
<chrono>へのカレンダーとタイムゾーンの追加
テキストのフォーマット(chronoの統合、特殊なケースにおける修正)
ビット操作
constexpr INVOKE
数学定数
アトミックへの一貫性の追加( std::atomic_ref<T>、std::atomic<std::shared_ptr<T>>)
<=>演算子を標準ライブラリに追加
標準ライブラリのヘッダーユニット
同期機能(マージ元:効率的なアトミック待機とセマフォ、ラッチとバリア、atomic_flagの改善、C++を小さいCPUで実装できないようにしない )
std::source_location
constexprコンテナ(std::string、std::vector)
std::stop_tokenおよびjoinされるスレッド(std::jthread)
2019年11月の秋の会議(ベルファスト)でのNBコメントの解決中に適用された変更には以下を含む:
非タイプテンプレートパラメータ(NTTP)のクラスタイプ:テンプレート引数の等価性の意味がoperator==から分離されたため、ユーザー定義のoperator==許可しないという制限がなくなった。これにより、クラスタイプのNTTPの配列メンバーも許可される。
浮動小数点型、ポインターと参照、および共用体とunionライクなクラス(無名共用体を含むクラス型)がNTTPとして許可されるようになった。
並列処理TS v2 (タスクブロックを含む)
ネットワーキングTS v1
リフレクションTS v1