version: multiple conditions

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Wed Jun 17 05:28:34 PDT 2015


On Wednesday, 17 June 2015 at 06:23:15 UTC, Jacob Carlborg wrote:
> On 2015-06-16 22:36, Jonathan M Davis wrote:
>
>> Sounds like it's preventing an abuse of operator overloading 
>> to me... :)
>
> Sounds like it's preventing a perfectly good use case. Or do 
> you prefer AST macros instead :)

I prefer that operators actually do what they're supposed to do 
per how they work with the built-in types and that they not be 
redefined to do something else. An operator which is overloaded 
specifically do something other than what occurs with the 
built-in types is just begging for problems. Sure, we can't 
prevent all operator overloading abuses, and they can be 
misimplemented just like any other function, but the whole point 
of having operator overloading is to make it so that user-defined 
types can look and operate like built-in types, not to invent new 
syntax, and I think that inventing new syntax via operator 
overloading is a _very_ clear abuse of it. And I really don't 
think that folks should be trying to add syntax to the language 
for DSLs or anything of the sort, and I'm very glad that D 
prevents that in many cases while still allowing us to have 
useful features such as operator overloading.

- Jonathan M Davis


More information about the Digitalmars-d mailing list