Eigenpoll : D wish list : constant operater overloading 

static class Test(int t){
const i=t;
//nested template short syntax.
//function argument can't use static class now.
template TopAdd(int u)(Test(u) v){
alias Test!(v.i+t) TopAdd;
}
template TopCmp(int u)(Test(u) v){
const TopCmp = cast(bool)(v.i==t);
}
}

static assert(Test!(1)+Test!(2)==Test!(3));

Report this item for cleanup