UDA usage

Adam D. Ruppe destructionator at gmail.com
Tue Oct 8 14:09:04 PDT 2013


On Tuesday, 8 October 2013 at 20:59:04 UTC, Matt Soucy wrote:
> Update on this - unfortunately, I discovered that this doesn't 
> seem to work for any members, due to requiring a specific 
> "this". I can't quite figure out why though...

Try adding static to the helper functions in the templates. I 
just did that and this worked:

struct Whoa {
         int a;
}

class Foo {
         @lol void argh() {}
         @Whoa(12) int keanu;
}

void main() {
         pragma(msg, hasAnnotation!(Foo.argh, lol));
         pragma(msg, getAnnotation!(Foo.keanu, Whoa));
}


~$ dmd test34
true
Whoa(12)




The change to get it to compile was just this:

template hasValueAnnotation(alias f, Attr) {
         static bool helper() { // added static


and so on for all three of the helper functions, just make them 
all static.



More information about the Digitalmars-d-learn mailing list