Thread overview | ||||||
---|---|---|---|---|---|---|
|
July 04, 2010 Is there a way to get the list of names of a class' member variables? | ||||
---|---|---|---|---|
| ||||
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? - Jonathan M Davis |
July 04, 2010 Re: Is there a way to get the list of names of a class' member variables? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jonathan M Davis | Jonathan M Davis <jmdavisprog@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. [1] http://www.digitalmars.com/d/2.0/traits.html -- Simen |
July 04, 2010 Re: Is there a way to get the list of names of a class' member variables? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen kjaeraas | Simen kjaeraas <simen.kjaras@gmail.com> wrote: > Jonathan M Davis <jmdavisprog@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 |
July 04, 2010 Re: Is there a way to get the list of names of a class' member variables? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Simen kjaeraas Attachments:
| On Sun, Jul 4, 2010 at 12:55, Simen kjaeraas <simen.kjaras@gmail.com> wrote:
>
> __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.
>>
>
>
Somehting I discovered today: it works for module names, also:
auto ioMembers = __traits(allMembers, std.stdio);
It also contains the unittests... Hmm, I wonder what one can do with that.
Philippe
|
Copyright © 1999-2021 by the D Language Foundation