Local fixed sized arrays
Smoke Adams via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Jun 27 16:02:10 PDT 2016
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.
More information about the Digitalmars-d-learn
mailing list