Is there a way to get the list of names of a class' member variables?

Simen kjaeraas simen.kjaras at gmail.com
Sun Jul 4 03:55:17 PDT 2010


Simen kjaeraas <simen.kjaras at gmail.com> wrote:

> Jonathan M Davis <jmdavisprog at gmail.com> wrote:
>
>> MemberFunctionsTuple() from std.traits will return the list of names of  
>> member
>> function, and FieldTypeTuple from std.traits will return the list of  
>> the _types_
>> of the member variables. But I don't see a function that returns the  
>> list of the
>> _names_ of the member variables. Am I just blind, or does such a  
>> function not
>> currently exist?
>
> __traits[1] is your friend in these matters.
>
> __traits( allMembers, Foo ) returns a tuple of string literals, each of
> which corresponds to a member of Foo.

If you prefer the temmplated way, here's a FieldNameTuple template:

template FieldNameTuple( T ) {
     enum FieldNameTuple = __traits( allMembers, T );
}

-- 
Simen


More information about the Digitalmars-d-learn mailing list