Why isn't global operator overloading allowed in D?
John Colvin via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Oct 15 08:57:28 PDT 2015
On Thursday, 15 October 2015 at 15:45:00 UTC, Shriramana Sharma
wrote:
> John Colvin wrote:
>
>> On Wednesday, 14 October 2015 at 15:02:02 UTC, Shriramana
>> Sharma
>> wrote:
>> What binary arithmetic operators do you need that real[]
>> doesn't
>> already support?
>
> OMG silly me! I can already do a[] /= b[]... D is great! :-D
> Thanks a lot!
Also:
a[] = b[] + c[] * d[] - 42;
and so on... All that's required is that there is pre-allocated
memory for the result to go in i.e. there has to be enough space
in a[].
You should be aware that with DMD these array operations should
be much faster than a straightforward loop, as they are done in
handwritten asm using vector instructions. Be wary of using them
on very small arrays, there is some overhead.
With LDC/GDC you probably wont see much difference either way, if
I remember correctly they rely on the optimiser instead.
More information about the Digitalmars-d-learn
mailing list