Testing array ptr for offset 0...

Kagamin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 27 03:54:03 PDT 2016


On Thursday, 26 May 2016 at 21:13:14 UTC, Era Scarecrow wrote:
>  To do what I want currently it's something like...
>
>   enum Size = 1024, Other = 128;
>   Data[Size][Other] staticarray;  //stack allocation
>   Data[][] sliced = staticarray[];
>   scan(sliced, condition);
>
>   void scan(ref Data[][] data, Condition cond) {
>     int lengths[Size];
>
>     foreach(i; ...) {
>       if (cond)
>         data[i][lengths[i]++] = ...
>     }
>
>     //cleanup/shrink
>     foreach(i, l; lengths)
>       data[i] = data[i][0 .. l];
>   }

Like this:

   static void rawlength(ref Data[] r, size_t len) {
     r = r.ptr[0..len];
   }

   void scan(ref Data[][] data, Condition cond) {
     foreach(i; ...) {
       if (cond)
         data[i].rawlength = ...
     }
   }


More information about the Digitalmars-d-learn mailing list