Getting the superclass of a type?

Johannes Loher via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 5 08:55:28 PDT 2016


Am 05.09.2016 um 17:43 schrieb Lodovico Giaretta:
> On Monday, 5 September 2016 at 15:20:10 UTC, pineapple wrote:
>> I'd like to be able to write something like this, but I haven't been
>> able to find anything in the docs
>>
>>     class Base{}
>>     class Sub: Base{}
>>     static assert(is(SuperClassOf!Sub == Base));
> 
> https://dlang.org/phobos/std_traits.html#.BaseClassesTuple

Another option would be to use the following:

class Base {}
class Sub: Base {}
class Other {}

static assert(is(Sub : Base));
static assert(!is(Other : Base));

However, the ":" syntax also works for automatic conversion (see
http://ddili.org/ders/d.en/is_expr.html and search for "is (T : OtherT)").


More information about the Digitalmars-d-learn mailing list