Re: cast problem about alias this

2018-01-29 Thread Sobaya via Digitalmars-d-learn
On Monday, 29 January 2018 at 19:59:31 UTC, Steven Schveighoffer 
wrote:

On 1/29/18 2:40 PM, Sobaya wrote:

class Parent {
     int x;
     alias x this;
}

class Child : Parent {
}

void main() {
     Parent p = new Child;
     Child c = cast(Child)p; // cannot cast `int` to `Child`
}

In this code, I got a compile error.
How can I cast p to Child?


I'm sure I've seen this bug reported somewhere before. Ah yes: 
https://issues.dlang.org/show_bug.cgi?id=6777


What you can do is cast to Object first.

-Steve


I see.

I will continue by casting to Object for now.
Hope the bug is fixed soon.
Thanks!
 - Sobaya


Re: cast problem about alias this

2018-01-29 Thread Steven Schveighoffer via Digitalmars-d-learn

On 1/29/18 2:40 PM, Sobaya wrote:

class Parent {
     int x;
     alias x this;
}

class Child : Parent {
}

void main() {
     Parent p = new Child;
     Child c = cast(Child)p; // cannot cast `int` to `Child`
}

In this code, I got a compile error.
How can I cast p to Child?


I'm sure I've seen this bug reported somewhere before. Ah yes: 
https://issues.dlang.org/show_bug.cgi?id=6777


What you can do is cast to Object first.

-Steve


cast problem about alias this

2018-01-29 Thread Sobaya via Digitalmars-d-learn

class Parent {
int x;
alias x this;
}

class Child : Parent {
}

void main() {
Parent p = new Child;
Child c = cast(Child)p; // cannot cast `int` to `Child`
}

In this code, I got a compile error.
How can I cast p to Child?