On Monday, 27 June 2016 at 22:56:35 UTC, Ali Çehreli wrote:
On 06/27/2016 02:58 PM, Smoke Adams wrote:
I'm in need of a way to create a local array that isn't GC'ed. It must be dynamic in the sense of setting the size at compile time but it will
be used only in scope and only on structs.

function x(int y)
{
    bool[y] arr;

    arr ~= 3;

}

I care about slicing or anything but appending, removal, and indexing. I don't even need bounds checking. I don't see a need to get locked in to
the GC for such simple cases.



One way is to make x() a function template:

import std.stdio;

void x(int y)() {
   bool[y] arr;
   arr[y/2] = true;
   writeln(arr);
}

void main() {
    x!5();
}

Ali

But the length depends on runtime behavior. Might be 5 or 100. This doesn't handle it, does it?

I already make a simple malloc based array that does what I want. Looks like a normal array with ~=, [], foreach. Does what I need it to do. Only works with BasicTypes of course.


Reply via email to