AllocatorState

State of an allocator A.

AllocatorState!(A).sizeof is zero for A being NullAllocator, Mallocator, GCAllocator, and MMapAllocator and typically non-zero for the other.

mixin template AllocatorState (
A
) if (
isAllocator!A
) {
static if(!(stateSize!A == 0))
A allocator;
}

Examples

import std.experimental.allocator.building_blocks.null_allocator : NullAllocator;
import std.experimental.allocator.mallocator : Mallocator;
import std.experimental.allocator.gc_allocator : GCAllocator;
import std.experimental.allocator.mmap_allocator : MmapAllocator;
struct S
{
    mixin AllocatorState!NullAllocator n;
    mixin AllocatorState!GCAllocator g;
    mixin AllocatorState!Mallocator m;
    mixin AllocatorState!MmapAllocator p;
}
static assert(S.sizeof == 1);

Meta