Associative arrays with new std experimental allocators.
To use this package, put the following dependency into your project's dependencies section:
Associative arrays with manual memory management
All enries and buckets would be dealocated and disposed by internal implementation's destructor. The destructor is called by garbage collector (by default).
//std.experimental.allocator is included into `aammm` import std.experimental.allocator.mallocator; import aammm; auto a = aa!(string, int)(Mallocator.instance); a["foo"] = 0; a.remove("foo"); //dealocates and disposes the entry assert(a == null); // should not crash
Example with FreeList
import std.experimental.allocator.mallocator; import std.experimental.allocator.building_blocks.free_list; alias Alloc = FreeList!(shared Mallocator, long.sizeof); Alloc alloc; scope(exit) alloc.minimize; auto m = aa!(long, long)(alloc); ...