История изменений
Исправление
vertexua,
(текущая версия)
:
В этой задаче, что должно послужить сигналом что в этой строчке такой аллокатор, а в этом случае - другой?
В принципе нету проблемы чтобы завернуть что-то в смарт-поинтер и чтобы обьекты создавались разными фабриками для любого типа T, а потом был для каждого аллокатора переопределен Drop соответствующего смарт-поинтера.
Такие смарт-поинтеры могут потом еще даже лайфтайм иметь для того чтобы жить короче арены, в которой они выделены - если такое хочется.
И обьекты внутри смарт-поинтеров легко доступны по ссылке для методов, которые не слыхали про какие-то аллокаторы.
Да-да, можно сказать «а я хочу вот так без смарт-поинтеров, как деды в C». Ну так там и Drop нету, прийдется вообще все ручками удалять.
Это я конечно переусложнил все для случая когда этот поинтер таскать с собой куда попало нужно. Если просто референс достаточно, то можно как тут https://docs.rs/typed-arena/2.0.1/typed_arena/struct.Arena.html#method.alloc
Исправление
vertexua,
:
В этой задаче, что должно послужить сигналом что в этой строчке такой аллокатор, а в этом случае - другой?
В принципе нету проблемы чтобы завернуть что-то в смарт-поинтер и чтобы обьекты создавались разными фабриками для любого типа T, а потом был для каждого аллокатора переопределен Drop.
Такие смарт-поинтеры могут потом еще даже лайфтайм иметь для того чтобы жить короче арены, в которой они выделены - если такое хочется.
И обьекты внутри смарт-поинтеров легко доступны по ссылке для методов, которые не слыхали про какие-то аллокаторы.
Это я конечно переусложнил все для случая когда этот поинтер таскать с собой куда попало нужно. Если просто референс достаточно, то можно как тут https://docs.rs/typed-arena/2.0.1/typed_arena/struct.Arena.html#method.alloc
Исходная версия
vertexua,
:
В этой задаче, что должно послужить сигналом что в этой строчке такой аллокатор, а в этом случае - другой?
В принципе нету проблемы чтобы завернуть что-то в смарт-поинтер и чтобы обьекты создавались разными фабриками для любого типа T, а потом был для каждого аллокатора переопределен Drop.
Такие смарт-поинтеры могут потом еще даже лайфтайм иметь для того чтобы жить короче арены, в которой они выделены - если такое хочется.
И обьекты внутри смарт-поинтеров легко доступны по ссылке для методов, которые не слыхали про какие-то аллокаторы.