opDispatch and operator overloads
John Colvin
john.loughran.colvin at gmail.com
Tue May 21 04:30:46 PDT 2013
On Monday, 20 May 2013 at 19:26:28 UTC, Maxim Fomin wrote:
> 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.
Could you please expand on why / give an example?
Seeing as all operators (only on user defined types, sadly) can
be rewritten as op***** member functions, I don't see why having
opDispatch catch missing operators is any different from it
catching missing member function calls, as it currently does.
More information about the Digitalmars-d
mailing list