Multiple alias this failed workaround...obscure error message

matovitch via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 11 11:07:43 PDT 2014


I was looking for a workaround to multiple alias this (or 
opImplicitCast) the following trick doesn't work (why shouldn't 
it ?). The error message is quite obscure to me.


import std.stdio;

class A(Derived)
{
     alias cast(ref Derived)(this).x this;
}

class B : A!B
{
     float x;
}

class C : A!C
{
     int x;
}

void main()
{
     B b;
     b.x = 0.5;

     float f;
     f = b;
}


output :

source/app.d(5): Error: basic type expected, not cast
source/app.d(5): Error: no identifier for declarator int
source/app.d(5): Error: semicolon expected to close alias 
declaration
source/app.d(5): Error: Declaration expected, not 'cast'
Error: DMD compile run failed with exit code 1


More information about the Digitalmars-d-learn mailing list