Появился способ получить ссылку из целочисленного указателя
03.02.2026Стабилизирован способ получить ссылку из целочисленного значения, трактуемого как указатель. Ответственность за корректность остаётся на вызывающем коде.
Почему это вообще возможно
Ссылка в Rust — это не что-то одно, а пара: указатель и доказательство, что по нему читают правильно и что он указывает на живое значение. Вторую часть компилятор проверяет сам при создании ссылки. У целочисленного значения доказательства нет.
Метод требует подтвердить его явно — то есть написать обещание. Это позволяет работать с памятью, полученной извне: из системного вызова, из сетевого пакета, из файла. В таких случаях ссылки нет, а данные есть.
Чем отличается от приведения
Приведение целочисленного значения в указатель не проверяет ничего и не требует обещаний — оно остаётся небезопасным. Новый метод требует подтверждения и поэтому проверяется инструментами поиска неопределённого поведения.
Оригинал
FCP passed in rust-lang/rust#122034. Closes rust-lang/rust#122034.
Упоминаний: 1 · Просмотров: 2