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