Re: alias this and initialisation

2020-05-25 Thread lalit.singhh via Digitalmars-d-learn

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?
}





Re: alias this and initialisation

2020-05-25 Thread Adam D. Ruppe via Digitalmars-d-learn

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.


Re: alias this and initialisation

2020-05-25 Thread Ali Çehreli via Digitalmars-d-learn

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