On Sunday, 15 July 2018 at 13:06:16 UTC, John Colvin wrote:
Currently the API's don't support const(void)[], e.g.

import std.experimental.allocator : makeArray, theAllocator, dispose;
import std.experimental.allocator.mallocator : Mallocator;

void main()
{
    const a = theAllocator.makeArray!ubyte(100);
    theAllocator.dispose(a);
// can't call RCIAllocator.deallocate(void[] b) with const(ubyte)[]

    const(void)[] b = Mallocator.instance.allocate(100);
    Mallocator.instance.deallocate(b);
// can't call Mallocator.deallocate(void[] b) with const(void)[]
}

Is this deliberate? It's pretty annoying.

Probably not, the lifetime of the referenced memory is over. There's a couple of other places where we cast away const and shared before destroying and object.

Reply via email to