Diff
Not logged in

Differences From Artifact [783554bf667412ed]:

To Artifact [0665970b47ba63ed]:


19 19 this.tupleof = params; 20 20 } 21 21 } 22 22 23 23 template DeriveCompare() 24 24 { 25 25 override: 26 - bool opEquals(Object rhs) 26 + bool opEquals(Object rhs) const 27 27 { 28 28 return tuple(this.tupleof) == tuple((cast(typeof(this))rhs).tupleof); 29 29 } 30 30 31 - int opCmp(Object rhs) 31 + int opCmp(Object rhs) const 32 32 { 33 33 return tuple(this.tupleof).opCmp(tuple((cast(typeof(this))rhs).tupleof)); 34 34 } 35 35 36 - hash_t toHash() 36 + hash_t toHash() const 37 37 { 38 38 hash_t v = 0; 39 39 foreach(mem; this.tupleof) { 40 40 v *= 11; 41 41 static if(__traits(compiles, v^=mem)) 42 42 v ^= mem; 43 43 else ................................................................................ 46 46 return v; 47 47 } 48 48 } 49 49 50 50 template DeriveShow() 51 51 { 52 52 override: 53 - string toString() 53 + string toString() const 54 54 { 55 55 string str = text(typeof(this).stringof, "("); 56 56 foreach(i,mem; this.tupleof) { 57 57 if(i) str ~= ", "; 58 58 str = text(str, this.tupleof[i].stringof[5..$], ":", mem); 59 59 } 60 60 return str ~ ")"; 61 61 } 62 62 }