Появилась ячейка памяти с управляемой ковариантностью
26.07.2026В модуле ячеек памяти появилась вариация изменяемой ячейки, в которой время жизни вложенного значения считается сокращённым. Методы возвращают сырой ненулевой указатель вместо ссылки.
Какая была проблема
Ячейка изменяемой памяти нужна там, где значение можно менять, но ссылку на него отдавать нельзя — например, во внутренних структурах с взаимными ссылками. Обычная ячейка запрещает и то, и другое.
Когда нужны структуры с самоссылками — узел дерева, элемент списка на основе указателей, — приходилось хранить рядом ещё и счётчик ссылок вручную и следить за ним самому.
Что даёт
Возможность хранить в ячейке значение, о котором известно только, что оно действительно, без ручного подсчёта ссылок. Метод возвращает сырой указатель, а не ссылку, — и это осознанно: безопасной ссылки здесь быть не может по построению.
Оригинал
implement CovariantUnsafeCell
Упоминаний: 1 · Просмотров: 1