On 01/20/2013 03:41 AM, Ali Çehreli wrote:
...
void main()
{
     auto ship = new Ship;
     alias T = typeof(ship);

     foreach (m; __traits(allMembers, T))
     {
         writefln("member %s", m);

         enum atrs = __traits(getAttributes, mixin(T.stringof ~ "." ~ m));

This only works because Ship happens to be defined in the same module. Use __traits(getMember, T, m) instead of the mixin.


         foreach (a; atrs)
         {
             writefln("  attribute %s", a);
             if (is(typeof(a) == Bind))
                 Engine.bindActors(ship, a.pattern);
         }
     }
}

Ali


Reply via email to