このページはC++26に採用される見込みの言語機能の変更を解説しています。
のちのC++規格でさらに変更される場合があるため関連項目を参照してください。
概要
宣言のみで定義がない不完全型へのポインタへのdelete
は、これまで未定義動作を引き起こす操作になっていた。
C++26ではこれを不適格とし、コンパイル時エラーとする。
class C; // 不完全型の宣言
C* cp = nullptr; // 不完全型へのポインタはOK
delete cp; // C++23:未定義動作, C++26:コンパイルエラー