From 41226575825b0ca5d115b300af739a3c1afda5cd Mon Sep 17 00:00:00 2001 From: Akira Takahashi Date: Sun, 17 Nov 2024 18:49:50 +0900 Subject: [PATCH] =?UTF-8?q?C++26=20=E6=9C=AA=E5=88=9D=E6=9C=9F=E5=8C=96?= =?UTF-8?q?=E5=A4=89=E6=95=B0=E3=81=AE=E8=AA=AD=E3=81=BF=E5=8F=96=E3=82=8A?= =?UTF-8?q?=E3=82=92=E3=82=A8=E3=83=A9=E3=83=BC=E6=80=A7=E5=8B=95=E4=BD=9C?= =?UTF-8?q?=E3=81=A8=E3=81=99=E3=82=8B=20:=20=E5=85=A5=E3=82=8C=E5=AD=90?= =?UTF-8?q?=E3=83=AA=E3=82=B9=E3=83=88=E3=81=AE=E8=A1=A8=E7=A4=BA=E5=B4=A9?= =?UTF-8?q?=E3=82=8C=E3=82=92=E4=BF=AE=E6=AD=A3=20#1362?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/cpp26/erroneous_behavior_for_uninitialized_reads.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/cpp26/erroneous_behavior_for_uninitialized_reads.md b/lang/cpp26/erroneous_behavior_for_uninitialized_reads.md index 4cf7047e0..79b80c7ac 100644 --- a/lang/cpp26/erroneous_behavior_for_uninitialized_reads.md +++ b/lang/cpp26/erroneous_behavior_for_uninitialized_reads.md @@ -44,11 +44,11 @@ int main() { ## 仕様 - 自動記憶域期間をもつオブジェクトの記憶域は確保時点で「エラー性の値 (erroneous value)」をもつとされ、処理系がプログラムの状態に依存せず決定する何らかの値で埋められる - - 動的記憶域期間であれば不定値、静的・スレッド記憶域期間であればゼロで埋められる。C++23までは自動記憶域期間も不定値で埋められていた + - 動的記憶域期間であれば不定値、静的・スレッド記憶域期間であればゼロで埋められる。C++23までは自動記憶域期間も不定値で埋められていた - 初期化されなかったスカラ型オブジェクトなど、値表現(パディングは含まない)内のいずれかのビットにエラー性の値をもつオブジェクトはエラー性の値をもつとされる - 式が評価された結果としてエラー性の値が生成された場合、エラー性動作を引き起こす - - ただし、`unsigned char`(およびunsignedとなる場合は`char`)もしくは[`std::byte`](/reference/cstddef/byte.md)型のエラー性の値がこれらの型のオブジェクトの初期化・代入に使用される場合や値が破棄される場合はエラー性動作にならない - - これらのルールは、式が評価された結果として不定値が生成された場合に未定義の動作を引き起こすとする従来のルールと同様である + - ただし、`unsigned char`(およびunsignedとなる場合は`char`)もしくは[`std::byte`](/reference/cstddef/byte.md)型のエラー性の値がこれらの型のオブジェクトの初期化・代入に使用される場合や値が破棄される場合はエラー性動作にならない + - これらのルールは、式が評価された結果として不定値が生成された場合に未定義の動作を引き起こすとする従来のルールと同様である - エラー性動作を引き起こしたうえで生成された値は、後続の処理ではエラー性の値とはみなされない ```cpp example