Looking for a workaround
    Adam D Ruppe 
    destructionator at gmail.com
       
    Wed Apr  6 18:21:11 UTC 2022
    
    
  
On Wednesday, 6 April 2022 at 18:10:32 UTC, Guillaume Piolat 
wrote:
> Any idea how to workaround that?
Works fine if you just use the language instead of the buggy 
phobos wrappers:
---
     struct MyUDA
     {
     }
     class A
     {
         @MyUDA int a;
     }
     class B : A
     {
         @MyUDA int b;
     }
     void main()
     {
         foreach(memberName; __traits(allMembers, B))
         foreach(attr; __traits(getAttributes, __traits(getMember, 
B, memberName)))
         static if(is(attr == MyUDA))
                 pragma(msg, memberName); // a, b
     }
---
So make a function that does that and applies whatever it is you 
need to apply and you're in business.
Note that it is `is(typeof(attr) == MyUDA)` if defined 
`@MyUDA(args)`.
    
    
More information about the Digitalmars-d-learn
mailing list