Comparison operator overloading
cym13 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Dec 6 07:01:08 PST 2015
On Sunday, 6 December 2015 at 14:41:01 UTC, Márcio Martins wrote:
> I am writing a generic numerical array struct, and I can't find
> a way to do element-wise comparison operators.
>
> What I had envisioned was something like the following,
> assuming a, b, c and m are array-like, and all operations
> return arrays.
>
> auto m = (a > b) * a + 15;
> auto c = a.choose(a > b)^^2;
>
> However, it seems this can't be achieved at the moment, as far
> as I can tell.
>
> The rewriting of a >= b to a.opCmp(b) >= 0 seems limiting in
> the sense that it assumes scalar-like operands and semantics,
> which is surprising, and goes against the awesome flexibility
> of the remaining operator overloads.
>
> Tried to look around, but according to google, the only
> reference I have seen to this was someone with a similar
> question in 2004, which is surprising to say the least. I
> suppose either I am missing something really obvious, or I am
> out of luck?
Don't use opCmp, all binary operators should be overriden using
opBinary. For more information I recommend this page
http://ddili.org/ders/d.en/operator_overloading.html
More information about the Digitalmars-d-learn
mailing list