Traits

Artur Skawina art.08.09 at gmail.com
Sat Oct 12 04:49:54 PDT 2013


On 10/12/13 13:42, Artur Skawina wrote:
>    template isBaseOf(BASE, C) {
>       static if (is(C S == super))
>          enum isBaseOf = {
>             foreach (A; S)
>                static if (is(A==BASE))
>                   return true;
>             return is(C==BASE);
>          }();
>       else
>          enum isBaseOf = is(C==BASE);
>    }

That was too verbose.

   template isBaseOf(BASE, C) {
      enum isBaseOf = {
         static if (is(C S == super))
            foreach (A; S)
               static if (is(A==BASE))
                  return true;
         return is(C==BASE);
      }();
   }

artur



More information about the Digitalmars-d-learn mailing list