alias this & cast
Daniel Kozak via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Sep 11 04:53:14 PDT 2014
V Thu, 11 Sep 2014 11:40:05 +0000
andre via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com>
napsáno:
> Hi,
>
> I am 80% sure, the failing assertion is correct but please have a
> look.
No it is not
assert(cast(A)cast(C)b); // this is OK
b is B so it does not know about having alias to A;
> Second assertion fails.
>
> Kind regards
> André
>
> class A{}
>
> class B{}
>
> class C : B
> {
> A a;
> alias a this;
>
> this()
> {
> a = new A();
> }
> }
>
> void main()
> {
> B b = new C();
>
> // OK
> assert(cast(C)b);
>
> // fails
> assert(cast(A)b);
> }
More information about the Digitalmars-d-learn
mailing list