Rustの言語チームがスマートポインタを組み込み参照と同等に扱う新設計を発表
Beyond the &
Rustの言語チームリードTyler Mandry氏がRustConf 2026で、ユーザー定義のスマートポインタを組み込み参照と同じ柔軟さで扱えるようにする「Beyond the &」プロジェクトを紹介した。コンパイラ内部の「place」の概念をハンドル型として公開し、borrow checkerがMutexGuardなどの独自ポインタを安全に理解できるようにする。まだプロトタイプ段階で、設計文書へのフィードバックを求めている。
「この例では小さなコード変更だが、意味的には大きな転換だ」
- weinzierl
「プレース(place)とは、C言語の左辺値(lvalue)に相当するRustの概念だ。つまり、値の読み書きができる場所のことだ。プレースとポインタの違いは、プレースはコンパイル時に存在する抽象的な式(state.cacheなど)であり、ポインタは実行時にプレースを表現する一つの手段にすぎない、という点にある。」
これは役に立つ説明だった。
- chombier
- creata
> それは動くけれど、特に直感的というわけではない。
別に普通に見えるけど? このコードが失敗するのはMutexGuardを2回デリファレンスしているからで、だから代わりに1回だけデリファレンスすればいい。これが「Rustの学習曲線の険しさ」にどれだけ貢献しているのか、ちょっと想像しにくい。
むしろ、あらゆる`.`に対してさらに潜在的な暗黙性を導入するのは、言語を学びにくくするだけのように思える。
こうした機能が本当に役立つ例はあるの?