Стабилизированы методы «вставить и получить ссылку на добавленное»
29.01.2026У вектора, очереди на обоих концах и связного списка появились методы, которые вставляют элемент и сразу дают изменяемую ссылку на него. Методы стабилизированы.
Какой приём они заменяют
Обычная вставка сообщает новый индекс. Чтобы изменить только что вставленное, нужно взять этот индекс и взять по нему ссылку. Индекс всегда в границах — это гарантирует сам вектор — но проверка границ при обращении остаётся.
В коде, который работает с большими коллекциями, такие проверки заметны. В коде, который гоняется под инструментом поиска неопределённого поведения, безусловный доступ по индексу выглядит подозрительно: инструмент не видит, что границы проверены, и сообщает о подозрительном преобразовании указателя.
Что даёт метод
Ссылка получается напрямую из операции вставки, без индекса и без проверки. Соответственно, в инструменте нет ничего подозрительного — операция объявлена так, чтобы получить ссылку.
Оригинал
Stabilizes feature(push_mut), consisting of Vec::push_mut, Vec::insert_mut, VecDeque::push_front_mut, VecDeque::push_back_mut, VecDeque::insert_mut, LinkedList::push_front_mut, and LinkedList::push_back_mut.
Упоминаний: 1 · Просмотров: 4