Get the type of 'alias this ='

Vladimirs Nordholm v at vladde.net
Wed Apr 4 15:49:31 UTC 2018


Hello people from D-land.

Short question: Can get the type of a struct that has `alias this 
= <type>` ?

See this example, where a struct is aliased to an enum:


     enum Enum { one, two, three, fourtytwo }

     private template Mix()
     {
         this(Enum ee) { e = ee; }
         Enum e;
         alias this = e;
     }
     struct A { mixin Mix }
     struct B { mixin Mix }

     T foo(T) (T f) if (is(T == A) || is(T == B) || is(T == Enum))
     //               |------------------------------------------|
     //                         ^ I want to change this into 
something more nice looking
     {
         // ...
     }


I want to check the type in a more 'cleaner' way.

Best regards,
Vladimirs Nordholm


More information about the Digitalmars-d-learn mailing list