July 11, 2019 Re: Multiple alias this, what's the hold up? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Monday, 17 June 2019 at 16:13:07 UTC, rikki cattermole wrote: > On 18/06/2019 3:58 AM, user1234 wrote: >> On Monday, 17 June 2019 at 13:48:45 UTC, Mike Franklin wrote: >>> I think if we had an `opAssignRight` feature (with friends) we could move the entire implementation of `alias this` to the library. [...] >>> Mike >> >> At first glance opAssignRight is a really **brilliant** idea š. >> Why do you think that variants would be required ? i += s would work with the single op overload. Maybe it would more be something like >> >> T opExtractRight(T){}, with T saying what type is involved in the operation >> >> int i = sĀ rewritten asĀ int i = s.opExtractRight!int(); >> i += sĀ Ā Ā Ā rewritten asĀ i += s.opExtractRight!int(); > > Oh I like this. > This way it doesn't fight the other operator overloads and can be used (with them) only if they fail as-is. Hi. I've decided to give a try [1]. As expected it's reasonably simple but I haven't tested it extensively. Actually I'm more interested by a second form that allows to implicitly convert a parameter to a custom type (called opImplicitConvL). [1] : https://github.com/Basile-z/dmd/pull/2 Now as said on IRC, the harder is to write a solid proposal. |
Copyright © 1999-2021 by the D Language Foundation