Beginner problem: casting in opCmp override

Ugbar Ikenaki iken8273 at uwi.com
Mon Jul 8 15:35:32 PDT 2013


Here's one more question:

Before I knew that opEquals existed, I tried overloading the 
equality expressions (== and !=) in opBinary using the code 
below. It worked. Why would the overloaded opBinary version get 
called if the equality expressions are held in opEquals? I'm just 
interested in knowing how dmd chooses where to take an expression 
from if it lies in multiple places (e.g. == in opEquals and 
opBinary), even if what I did was just add the == operator to 
opBinary. (Is that what I did there?)

        override bool opBinary( string op ) ( Rect r ) if( op == 
"==" ) {
		//Check if rectangle coordinates are equal
		if( left == r.left && right == r.right && top == r.top && 
bottom == r.bottom ) {
			return true;
		} else {
			return false;
		}
	}


Thanks!


More information about the Digitalmars-d-learn mailing list