Don wrote:
There's been some interesting discussion about operator overloading over the past six months, but to take the next step, I think we need to ground it in reality. What are the use cases?

I think that D's existing opCmp() takes care of the plethora of trivial cases where <, >= etc are overloaded. It's the cases where the arithmetic and logical operations are overloaded that are particularly interesting to me.

The following mathematical cases immediately spring to mind:
* complex numbers
* quaternions (interesting since * is anti-commutative, a*b = -b*a)

Not true. Quaternion multiplication does have the distinction of being non-commutative in the general case, but anti-commutativity occurs in only some special cases.

If you really want anti-commutativity, look at vectors under cross multiplication.

Other unusual number systems: hypercomplex, biquaternions, octonions, p-adic numbers

* vectors
* matrices
* tensors
* bigint operations (including bigint, bigfloat,...)
<snip>

And possibly rational and Euclidean number types.

Stewart.

Reply via email to