このページはC++23に採用された言語機能の変更を解説しています。
のちのC++規格でさらに変更される場合があるため関連項目を参照してください。
概要
C++23では、コンパイル時に診断メッセージを出力させる以下の機能について、ソースコードのエンコーディングが実行環境のエンコーディングで表現できない場合にどうするかの規定を見直す:
static_assert
[[deprecated]]
[[nodiscard]]
#error
C++20までは、「基本ソース文字集合に含まれない文字は出力する必要はない」という規定になっていたが、基本ソース文字集合と実行環境のエンコーディングは関係ないものであるため、この規定を削除することとした。
この規定はC20でも導入され、C++もそれに追従することとした。