loop through specific class members

Trass3r mrmocool at gmx.de
Mon Jan 19 13:41:31 PST 2009


Daniel Keep schrieb:
>>>> Another possible hack: if used from a
>>>> different module, you could use the 'compiles' trait with allMembers
>>>> to find out if a member can be accessed.
>>>>
>>> you could define a template in another module that does the check and
>>> returns the result.
>>>
>>>
>> Well, it'd indeed be used from a different module than class, in fact
>> from a different package.
>> But this only gives the public members, right?
> 
> It depends on what exactly you're trying to do.  Some time ago, I wrote
> a library that created XML loaders for structs, and it needed to know
> the names of fields.  Pre-traits, this is what I used:
> 
> struct Stuff
> {
>     int foo;
>     char[] bar;
> 
>     alias Tuple!("foo", "bar") _fields;
> }
> 
> Then I just looped over _fields.
> 

What I want is a way that doesn't require much changes to the class 
itself but rather does the work in the module that actually uses the 
method names.

What I'm trying to do is providing a mechanism for LuaLib to register a 
whole class automatically (and probably also checking all method's 
parameters for correctness). So far you have to register each method to 
be used in lua individually.

So I was initially thinking about registering all protected methods or 
something like that. Guess I will use the prefix solution here cause it 
probably is the best way for this particular problem anyway.

But yet I'm interested in (and also somewhat impressed by) the 
possibilities to do this ;)


(reminds me of my search for a way to debug template and mixin stuff)


More information about the Digitalmars-d-learn mailing list