Struct polymorphism?

Era Scarecrow rtcvb32 at yahoo.com
Mon Oct 8 15:27:16 PDT 2012


   Error: function expected before (), not 
'this.polyBase.opDispatch!("orig")'

   I think this is a compiler bug. It complains about calling
opDispatch, however it doesn't complain if you explicitly call
'this'. Should adding 'this' be required? I am using the
-property switch so it's a little more strict, but that doesn't
seem to change the results. I can't just start adding 'this' to
all my function as outside normal functions/variables won't ever
be seen.

struct S {
   Something polyBase;
   alias polyBase this;  //opDispatch

   string callsOrig() {
     return orig;        //works but misleading
     return orig();      //breaks
     return orig(1);     //breaks too
     return this.orig(); //works
   }
}

struct Something {
   auto ref opDispatch(string fun, Args ...)(auto ref Args args)
@property;
}

   My experiments concentrating on this part rather than with
arguments, those will come later when this works.


More information about the Digitalmars-d mailing list