opEquals when your type occurs on the right hand side of an equality test
    Ali Çehreli 
    acehreli at yahoo.com
       
    Wed Jul 31 20:08:00 UTC 2019
    
    
  
On 07/31/2019 01:03 PM, NonNull wrote:
> I am creating a specialized bit pattern (secretly represented as a uint) 
> as a struct S, but want to avoid `alias this` to maintain encapsulation 
> excepting where I overtly say. Specifically, I want to avoid making 
> arithmetic and inequalities available for S.
> 
> I have written opEquals to compare an S to a uint.
> 
> How do I write code to compare a uint to an S?
> 
I didn't know that it works both ways already:
import std.stdio;
struct S {
   bool opEquals(uint u) {
     writeln("called");
     return true;
   }
}
void main() {
   S s;
   s == 7;
   7 == s;
}
There are two "called"s printed...
Ali
    
    
More information about the Digitalmars-d-learn
mailing list