https://issues.dlang.org/show_bug.cgi?id=12799

--- Comment #1 from Sobirari Muhomori <[email protected]> ---
I first wanted to implement a variable-sized struct this way.

struct Region
{
    enum fullSize=128, head=Region.sizeof/size_t.sizeof;
    enum capacity=fullSize-head;

    Region* prev;
    int count;

    void*[] allocations()
    {
        return all[0..count];
    }
    void put(void* data)
    {
        assert(count<capacity);
        all[count]=data;
        count++;
    }
    void*[] all(void* data)
    {
        void* b=cast(void**)&this+head;
        return b[0..capacity];
    }
}

Well, it's not really variable-sized, so I just declared a fixed-sized array in
it.

--

Reply via email to