opDispatch and operator overloads
Maxim Fomin
maxim at maxim-fomin.ru
Mon May 20 12:26:27 PDT 2013
On Monday, 20 May 2013 at 15:15:33 UTC, John Colvin wrote:
> struct S {
> auto opDispatch(string s)(A i){}
> }
>
> struct A {}
>
> void main() {
> S s;
> A a;
> s + a; //Error: incompatible types for ((s) + (a)): 'S' and 'A'
> }
>
> It would be really nice if opDispatch could catch missing
> operator overloads.
This would also leads to bugs when invalid code is silently
accepted in each user-defined type where opDispatch is defined.
> Also, would it be a good idea to have free functions of all the
> operators (opOpAssign etc...) for builtin types somewhere? It's
> occasionally useful in generic wrappers.
And this is pushing UFCS beyond its purpose for the sake of
temporal convenience at the expense of language.
More information about the Digitalmars-d
mailing list