Thread overview | ||||||
---|---|---|---|---|---|---|
|
May 25, 2020 alias this and initialisation | ||||
---|---|---|---|---|
| ||||
can anybody tell me why struct S { int x; alias x this; } void test() { S s; s = 8; // this works S s = 8 // but this does not? } |
May 25, 2020 Re: alias this and initialisation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Danni Coy | On 5/24/20 6:35 PM, Danni Coy wrote:> can anybody tell me why > > struct S > { > int x; > alias x this; > } > > void test() > { > S s; > s = 8; // this works > S s = 8 // but this does not? > } alias this is for implicit conversion, which requires an object to convert from. The second case above is about constructing an object. That's probably why it works that way. Ali |
May 25, 2020 Re: alias this and initialisation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Danni Coy | On Monday, 25 May 2020 at 01:35:47 UTC, Danni Coy wrote:
> s = 8; // this works
> S s = 8 // but this does not?
> }
alias this only applies if you already have an object. Construction is too soon.
You can add a constructor to make that work though.
|
May 25, 2020 Re: alias this and initialisation | ||||
---|---|---|---|---|
| ||||
Posted in reply to Danni Coy | On Monday, 25 May 2020 at 01:35:47 UTC, Danni Coy wrote:
> can anybody tell me why
>
> struct S
> {
> int x;
> alias x this;
> }
>
> void test()
> {
> S s;
> s = 8; // this works
> S s = 8 // but this does not?
> }
|
Copyright © 1999-2021 by the D Language Foundation