On Monday, 26 August 2019 at 09:58:30 UTC, Per Nordlöw wrote:
On Monday, 26 August 2019 at 09:54:30 UTC, Per Nordlöw wrote:
I have made some significant optimizations with regards to compilation performance at

https://github.com/nordlow/phobos-next/blob/master/src/soa.d

What is the preferred way to implement to support foreach over `x` in

    struct S { int i; float f; }
    auto x = SOA!S();
    foreach (S; x[])
    {
    }

?

Implement `opSlice` that returns a SOA.Range type?

1) not sure about opSlice cuz user can allocate every time when he need S[..] from SOA.
  easy call for user but its too expensive op.
maybe better to define global array( T )( SOA!T {opt: int beg, int end}) that returns array.
x.array or array( x ) or x.array( 10, 20)
looks like DRT that means "some range to newly allocated array". and SOA to S is some calculated range - need construct each element.

2) x.items returns SOA.Range

Reply via email to