> The problem is that to access a UDA attached to a field I need to pass a > symbol to the __traits(getAttributes). With "tupleof" I can get the name, > type and value of a field but I cannot get a symbol. > > __traits(getMember) can be used to get the symbol but that will only work > for public fields. >
You can use a string mixin:
class Foo
{
int a;
@(3) private int b;
}
void main()
{
writeln(mixin("__traits(getAttributes, " ~ Foo.tupleof[1].stringof ~
")")); // -> 3
}
