DIP63 : operator overloading for raw templates

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Sun Jun 15 11:32:29 PDT 2014


http://wiki.dlang.org/DIP63

This is solution for a problem I am currently having with 
implementing http://wiki.dlang.org/DIP54 (afair it was also 
mentioned by Timon Gehr during old discussion of that DIP)

New proposed semantics ( to catch your attention and get to read 
the link ;) ):

template Pack(T...)
{
     alias expand = T;

     alias opIndex(size_t index) = T[index];
     alias opSlice(size_t lower, size_t upper) = 
Pack!(T[lower..upper]);
     alias opDollar = T.length;
}

// no ambiguity as Pack!(int, int) is not a valid type
// is(element == int)
alias element = Pack!(int, int)[1];


More information about the Digitalmars-d mailing list