Thread overview
Are there any containers that go with allocators?
Feb 09, 2021
John Burton
Feb 09, 2021
rikki cattermole
Feb 09, 2021
John Burton
Feb 14, 2021
ryuukk_
February 09, 2021
Normally I'm happy with the GC containers in D, they work well and suit my use.

I have a few uses that would benefit from allocation in memory arenas or local stack based allocation. Looks like std.experimental has allocators for those use cases.

But I can't find any containers to make use of those allocators. The built in ones use GC managed memory, there are std.container but they appear to use malloc/free which again is useful but not what I'm looking for.

I'd like resizeable arrays, hashmaps and strings that I can allocate using an allocator?
Am I missing something in the standard library, or a way to use the existing ones, or is it just that nobody has implemented this kind of thing yet?


February 10, 2021
https://github.com/dlang-community/containers

It uses the older design for allocators (dependency).
February 09, 2021
On Tuesday, 9 February 2021 at 12:23:52 UTC, rikki cattermole wrote:
> https://github.com/dlang-community/containers
>
> It uses the older design for allocators (dependency).

Looks good, thank you
February 14, 2021
On Tuesday, 9 February 2021 at 12:18:41 UTC, John Burton wrote:
> Normally I'm happy with the GC containers in D, they work well and suit my use.
>
> I have a few uses that would benefit from allocation in memory arenas or local stack based allocation. Looks like std.experimental has allocators for those use cases.
>
> But I can't find any containers to make use of those allocators. The built in ones use GC managed memory, there are std.container but they appear to use malloc/free which again is useful but not what I'm looking for.
>
> I'd like resizeable arrays, hashmaps and strings that I can allocate using an allocator?
> Am I missing something in the standard library, or a way to use the existing ones, or is it just that nobody has implemented this kind of thing yet?

i use https://github.com/ikod/ikod-containers