Description

Associative arrays with new std experimental allocators.

Package Information

Version0.0.8 (2015-Oct-11)
Repositoryhttps://github.com/arexeu/aammm
LicenseBSL-1.0
AuthorsAndrei Alexandrescu (allocators), Martin Nowak (associative arrays), Ilya Yaroshenko (bundle, associative arrays)
Registered byIlya Yaroshenko
Dependenciesnone

Installation

To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Readme

Build Status

aammm

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).

Example
    //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);
    ...

Available versions

0.0.8 0.0.7 0.0.4 0.0.3 0.0.2 0.0.1 ~master