1. 聞き流しプログラミング言語学習
  2. Rust 055 transmuteと未定義動..
Rust 055 transmuteと未定義動作 - 越えてはいけない線
2026-07-31 12:19

Rust 055 transmuteと未定義動作 - 越えてはいけない線

第55章へようこそ。


今日のテーマは「transmuteと未定義動作」です。


第52章で、unsafeは規則を破る許可ではなく、保証の主体がコンパイラから人間へ移る境界だと見ました。

第53章と第54章では、その移転が起きる場所を見た。

生ポインタのデリファレンスでは、指す先に有効な値があることを人間が保証した。

UnsafeCellでは、読みと書きが衝突しないことを人間が保証した。

だが、保証に失敗したら何が起きるのかは、まだ確かめていない。

第54章では、前提と食い違ったプログラムの動作に保証は無い、とだけ言った。


今日は、この「保証は無い」の中身を確かめます。

unsafeの中には、人間がどう注意しても越えてはいけない線が引かれている。

その線がどこにあり、越えると何が起きるのか。

入り口は、ビット列を別の型として読み替える関数、transmuteです。


今日扱うのは、transmuteが何をするのか、型が持つ有効性の条件、そして未定義動作とは何か、です。

感想

まだ感想はありません。最初の1件を書きましょう!

12:19

コメント

スクロール