LINUX.ORG.RU

История изменений

Исправление 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.

Такие смарт-поинтеры могут потом еще даже лайфтайм иметь для того чтобы жить короче арены, в которой они выделены - если такое хочется.

И обьекты внутри смарт-поинтеров легко доступны по ссылке для методов, которые не слыхали про какие-то аллокаторы.