how do I read a class member's value using traits?
Marc
jckj33 at gmail.com
Sat Dec 16 03:34:43 UTC 2017
I need to give a class C, read all user-defined members of it,
both name and value dynamically. for example:
> class C {
> string a;
> string b;
> string c;
> }
then
> Class c = new C();
> // set c members...
> enum string[] members = [__traits(allMembers, C)];
> foreach(string member; members) {
> string value = __traits(getMember, c, member);
> doSomething(member, value);
>}
I get this error:
> Error: variable member cannot be read at compile time
> Error: string expected as second argument of __traits
> `getMember` instead of `__error`
why can't member in foreach(string member; members) be read at
compile time? I've also tried
> foreach(enum string member; members)
and
> static foreach(string member; members)
but it result a lot of error messages.
More information about the Digitalmars-d-learn
mailing list