On 10/13/13 02:25, luminousone wrote: > On Saturday, 12 October 2013 at 23:48:56 UTC, Artur Skawina wrote: >> template isBaseOf(BASE, C) { >> enum isBaseOf = { >> static if (is(C S == super)) >> foreach (A; S) >> static if (isBaseOf!(BASE, A)) >> return true; >> return is(C==BASE); >> }(); >> } >> >> Sorry, didn't test this properly; going to blame the dlang is-expression >> docs. >> It's not like D has multiple inheritance, so using "base classes" (plural) >> is very misleading...
> yea "is" can be a lil confusing, especially that "is( C S == super)" > expression. > > I take it that "is( C S == super)" is only the bases directly listed for > inheritance by the class and not the bases bases as well? which is the reason > for the change you made their? Yes, D supports only single inheritance, so there can never be more than one "super" class (plus interfaces). I'm not using classes in D often and when I looked up that is-expr syntax, the wrong doc confused me. It should say "base class" (or "super class"), not "base classes". artur