On 25 October 2012 09:36, Manu <turkey...@gmail.com> wrote: > On 25 October 2012 02:18, Iain Buclaw <ibuc...@ubuntu.com> wrote: >> >> On 25 October 2012 00:16, Manu <turkey...@gmail.com> wrote: >> > On 25 October 2012 02:01, Iain Buclaw <ibuc...@ubuntu.com> wrote: >> >> >> >> On 24 October 2012 23:46, Manu <turkey...@gmail.com> wrote: >> >> >> >> > Let's consider your example above for instance, I would rewrite >> >> > (given >> >> > existing syntax): >> >> > >> >> > // vector length of context = 1; current_mask = T >> >> > int4 v = [0,3,4,1]; >> >> > int4 w = 3; // [3,3,3,3] via broadcast >> >> > uint4 m = maskLess(v, w); // [T,F,F,T] (T == ones, F == zeroes) >> >> > v += int4(1); // [1,4,5,2] >> >> > >> >> > // the if block is trivially rewritten: >> >> > int4 trueSide = v + int4(2); >> >> > int4 falseSize = v + int4(3); >> >> > v = select(m, trueSide, falseSide); // [3,7,8,4] >> >> > >> >> > >> >> >> >> This should work.... >> >> >> >> int4 trueSide = v + 2; >> >> int4 falseSide = v + 3; >> > >> > >> > Probably, just wasn't sure. >> >> The idea with vectors is that they support the same operations that D >> array operations support. :-) > > > I tried to have indexing banned... I presume indexing works? :(
You can't index directly, no. Only through .array[] property, which isn't an lvalue. Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';