ライフタイム拡張について。

概要

ライフタイム拡張は let x = &some_expression; のような let 構文で有効になる。

そして、末尾の一時式の結果のライフタイムを、変数のスコープ範囲にまで拡張する。

仮にもし、この文をライフタイム拡張の知識なしで真面目に考えると、末尾の一時式の結果はすぐに解放されるため、x は最初からダングリング状態となる。もしそうなら、これは確実にコンパイルエラーにすべき状況である。しかし、実際はエラーにならない。

仕様