Ghosting a language feature
Paul Backus
snarwin at gmail.com
Mon Sep 21 14:08:38 UTC 2020
On Monday, 21 September 2020 at 13:32:16 UTC, 12345swordy wrote:
> If I were you I would mark alias this as a legacy feature, and
> introduce an dip that introduce implicit conversions in a very
> restrictive matter so that it could be replace properly.(Or we
> could think outside the box and introduce extended
> constructors, to replace the need for implicit conversions)
My guess is that allowing a struct to inherit from another struct
would cover around 80% of the use-cases for `alias this`. So
instead of writing
struct Wrapper(T) {
T payload;
alias payload this;
// etc.
}
...you could just write:
struct Wrapper(T) : T {
// etc.
}
For other cases where people want implicit conversions, we can
either add something like implicit constructors/opCast overloads,
or just tell them to use explicit conversions instead.
More information about the Digitalmars-d
mailing list