Looking for a workaround
Guillaume Piolat
first.last at gmail.com
Wed Apr 6 18:33:48 UTC 2022
On Wednesday, 6 April 2022 at 18:21:11 UTC, Adam D Ruppe wrote:
> 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)`.
Thanks, it will also create less templates.
More information about the Digitalmars-d-learn
mailing list