Can you do this in D?

Jacob Carlborg doob at me.com
Thu Jul 26 06:50:23 PDT 2012


On 2012-07-26 14:17, Wes wrote:
>> In general, no. But you can get a list of all members in a module or
>> class scope. Just use __traits(allMembers, ...);
> The allMembers example was lacking fields. It only showed methods, so I
> wasn't really sure. The problem with it was that it returned strings. I
> suppose I can still use them in a mixin.

If you want to access the fields of a class or struct you can use .tupleof:

class Foo { int a; }
Foo.tupleof;

You can have a look how this is used in my serialization library Orange:

https://github.com/jacob-carlborg/orange/blob/master/orange/util/Reflection.d#L188

Interesting templates/functions would be:

* hasField
* fieldsOf
* TypeOfField
* nameOfFieldAt
* setValueOfField
* getValueOfField

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list