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?

Reply via email to