для которого число слабых ссылок не контролируется, и слабые ссылки были бы Copy. Есть ли готовый крейт с такими характеристиками? И как, в целом, такое можно было бы спроектировать?
Нет, я бы предпочел избежать таких вариантов.
Ок, а к лайфтайму у слабых ссылок ты готов?
а в чем проблема дефолтного рц рефцеллов?
Типа, проблема такая: если слабые ссылки живут сколь угодно долго, то и сторейдж должен жить сколь угодно долго (иначе при дерефе слабой ссылке случится UB). Но тогда у тебя нет возможности его почистить, потомо что ты не можешь понять, а остались ли еще какие-то слабые ссылки
У него Weak: !Copy
Тоже нет. У слабой ссылки не должно быть лайфтайма.
Как минимум то, что они не Copy.
Для корректного дропа значения за счётчиком ссылок нужно отслеживать число слабых ссылок. Дроп слабой ссылки должен уменьшать число слабых ссылок в счётчике. А Copy и нетривиальный Drop несовместимы
Слабые ссылки вообще не обязательно какой-то там счётчик двигают
Обсуждают сегодня