Search elemnt in Compile-time Argument List of strings

ParticlePeter via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jul 26 13:58:18 PDT 2016


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?


More information about the Digitalmars-d-learn mailing list