最終更新日時(UTC):
が更新

履歴 編集

C++20

概要

C++20とは、2020年中に改訂される予定の、C++バージョンの通称である。

このバージョンは、策定中はC++2aと呼ばれることがあった。「202a年にリリースされる」という伏せ字として「a」が使われているが、3年周期に次のバージョンが策定されることが決まっているため、伏せ字になっている年数がずれることはない。

言語機能

言語機能 説明
ビットフィールドのメンバ変数初期化 ビットフィールドメンバ変数のデフォルト値を設定する構文を追加する
ラムダ式のキャプチャとして[=, this]を許可する デフォルトコピーキャプチャとthisポインタのコピーキャプチャを両方指定できるようにする
ジェネリックラムダのテンプレート構文 ジェネリックラムダでテンプレートパラメータを定義できるようにする
const修飾されたメンバポインタの制限を修正 .*演算子での左辺値のconstメンバ関数呼び出しを許可する
可変引数が空でない場合のトークン置換 プリプロセッサの置換で可変引数が空の場合に余計なカンマが付いてしまう問題に対処
指示付き初期化
コンセプト
範囲for文で初期化式を記述できるようにする
暗黙のラムダキャプチャを簡略化
関数テンプレートに明示的に型指定した場合にADLで見つからない問題を修正
デフォルトのコピーコンストラクタと非constなコンストラクタが衝突する問題を修正
評価されない文脈でconstexpr関数が定数式評価されることを規定
一貫性ある比較
ラムダ式の制約
特殊化のアクセスチェック
状態を持たないラムダ式を、デフォルト構築可能、代入可能とする
PODを非推奨化
評価されない文脈でのラムダ式

ライブラリ更新の概要