У владельца значения появился способ получить сырой указатель без промежуточной ссылки

14.06.2026

У владельца значения в куче появились методы получения сырого указателя на содержимое. Раньше для этого требовалось приведение указателя к ссылке и обратно.

Какая была неудобная запись

Сырой указатель на содержимое получали так: взять ссылку на значение, привести её к сырому указателю, и этот указатель отдать. Три шага, и на каждом — обещание, что ссылка действительна.

В коде, который проверяется на отсутствие неопределённого поведения, такой обмен заметен: он создаёт ссылку, которую компилятор тут же забывает, и инструмент проверки может на этом поймать.

Что даёт

Прямой переход от владельца к указателю, без промежуточной ссылки. Смысл тот же — безопасно получить указатель на внутреннее значение, не создавая ссылку, — но без обмена, который инструменты проверки считают подозрительным.

Особенно заметно для владельцев срезов, где содержимое начинается не с начала выделения: вычисление указателя вручную легко перепутать со смещением.

Оригинал

stabilize #![feature(box_as_ptr)]

Упоминаний: 1 · Просмотров: 3