Metaprogramming get type and field at compile time
    bioinfornatics via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Tue Oct 27 15:34:12 PDT 2015
    
    
  
Dear,
I use FieldTypeTuple and FieldNameTuple to get type and 
correponding field name but I fail to loop over these tuple.
As example:
struct Person{
     private string name;
     private ushort age;
     private bool   isMale;
     this(string name, ushort age, bool   isMale){
         this.name    = name;
         this.age     = age;
         this.isMale  = isMale;
     }
}
I would like to print with pragma msg:
  string name
  ushort age
  bool   isMale
for this I tried:
template getDeclarationFields( FieldTypeName...){
     enum typeIndex  = 0;
     enum nameIndex  = FieldTypeName.length / 2;
     enum  res       = FieldTypeName[typeIndex] ~ ' ' ~ 
FieldTypeName[nameIndex] ~';';
     static if( FieldTypeName.length == 1)
         enum getDeclarationFields = res;
     else
         enum getDeclarationFields = res ~ getDeclarationFields!( 
FieldTypeName[typeIndex+1..nameIndex] ~ 
FieldTypeName[nameIndex+1..$] );
}
but that don't build
I though that orange lib should do this somewhere but the lib usi 
his self trait method
thanks for your help
    
    
More information about the Digitalmars-d-learn
mailing list