iterate traits ?
    Philippe Sigaud via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Tue Aug 19 11:33:53 PDT 2014
    
    
  
>> A foreach becomes compile-time whenever the aggregate is a purely compile-
>> time construct such as a tuple.
Yeah, I think you transformed it into a runtime array by using [ ...
]. Tuples with compatible types can be 'downgraded' to arrays that
way. But there is no need to: tuples are iterable, indexable and
slice-able in D.
import std.stdio;
struct Vertex {float[3] position; float[3] normal;}
void main() {
    foreach(e; __traits(allMembers, Vertex)) {
        alias tt = typeof(__traits(getMember, Vertex, e)); // worksforme
        writeln(tt.sizeof);
    }
}
    
    
More information about the Digitalmars-d-learn
mailing list