On Tuesday, 26 July 2016 at 20:18:48 UTC, Steven Schveighoffer
wrote:
...
void processMember( T, ignore... )() {
foreach( member; __traits( allMembers, T )) { // this is a
compile-time list, so it's a static foreach.
foreach(i, arg; ignore ){ // i is the index into the ignore
tuple
static if( arg == member ) break; // break out of the
foreach loop, need to ignore it.
else static if(i + 1 == arg.length) // this is the last
element!
{
// process member here, generate e.g. setter function as
string mixin
}
}
}
}
There is one problem with this approach, ignore might be empty (I
should have mentioned it). Would you know a workaround for that
case as well?