On 10/3/17 3:25 PM, Walter Bright wrote:
This is specifically designed to prevent nasty surprises. C++ has a big problem with ADL in that overloading is not encapsulated and any #included header can inadvertently add more overloads that may be entirely unrelated. Any .h can crack open any namespace and insert more overloads into it. It's completely unhygienic and uncontrollable.

One thing I would like to have control over is how 'this' is passed.

A nice thing about UFCS is I can use it to pass-by-value the faux 'this' parameter, whereas I cannot do this with a member function. It makes a difference in some cases, especially with const functions.

It also can be cheaper to pass a small struct by value.

None of this is possible with operator overloading. A way out could possibly be to alias a non-member function for the operator.

-Steve

Reply via email to