static / global operator overload
Ali Çehreli
acehreli at yahoo.com
Sun Aug 18 08:29:25 PDT 2013
On 08/18/2013 07:34 AM, Namespace wrote:
> In C++ you can declare operator overloads inside and outside of classes
> (the latter is more popular)
The latter is popular because a global operator takes advantage of
implicit type conversions. A global operator+ allows using an int even
on the left-hand side of the operator.
As a result, assuming that MyInt can be constructed from an int, when
there is
// Assume this is defined outside of MyInt definition
MyInt operator+(MyInt lhs, MyInt rhs);
the expression
1 + MyInt(2)
is lowered to
operator+(MyInt(1), MyInt(2))
> so why wasn't this introduced in D also?
My guess is that there is no implicit construction of objects in D
anyway so there wouldn't be that benefit.
Ali
More information about the Digitalmars-d-learn
mailing list