On 03/06/15 19:27, Kagamin via Digitalmars-d-learn wrote: > On Friday, 6 March 2015 at 16:39:56 UTC, Ali Çehreli wrote: >> mixin (makePairInitValueDefinitions()); > > Oh, so that's how you do static foreach.
No, you implement it using CTFE magic, and then that code becomes: import std.typetuple; alias PairInitValues = TypeTuple!( int, 1, double, 0, ); #foreach (N; 0..PairInitValues.length/2) { enum PairInitValue(T:PairInitValues[$N*2]) = PairInitValues[$N*2+1]; } struct Pair(T) { T x = PairInitValue!T; T y = PairInitValue!T; alias x c; alias y r; } Seriously though, avoid using `.stringof` when generating code - it will break if the symbol is not available at the string-mixin scope. artur