Go and generic programming on reddit, also touches on D

Timon Gehr timon.gehr at gmx.ch
Sun Sep 18 13:37:03 PDT 2011


On 09/18/2011 10:21 PM, dsimcha wrote:
> On 9/18/2011 4:16 PM, Timon Gehr wrote:
>> What would it return?
>
> A dummy type, e.g.:
>
> struct Repeat(T) {
> T val;
> T front() @property { return val; }
> void popFront() {}
> enum empty = false;
>
> static struct Dollar {}
> Dollar opDollar() {
> return Dollar.init;
> }
>
>
> auto opSlice(size_t lower, Dollar dollar) { return this; }
> }
>
> void main() {
> auto r = Repeat!int(1);
> auto r2 = r[666..$];
> }

Ok, but what about

void main(){
     auto r = Repeat!int(1);
     auto r2 = r[666..$-1]; // ok, return entire range
     auto r3 = r[666..$/2]; // ditto
     auto r4 = r[666..$<100?$:100]; // ???
     // those could be made illegal:
     auto r5 = r[666..$*0]; // ???
     auto r6 = r[666..$-$]; // ???
     auto r7 = r[666..2*$-$]; // ???
     auto r8 = r[666..($*$)%4==3?667:668]; // ???
}









More information about the Digitalmars-d mailing list