P.S. Just looked at the disassembly. Seems to be a codegen bug -- the code appears to be trying to lookup local variables (presumably i0 and i1), but somehow the initialization code is missing.
--T On Tue, Dec 11, 2018 at 09:09:55PM +0000, Johannes Riecken via Digitalmars-d-learn wrote: > Code: > > import std.conv; > import std.stdio; > > mixin template genInts() > { > enum arr = [0,1]; > static foreach (t; arr) { > mixin("int i" ~ to!string(t) ~ " = 5;"); > } > } > > void main() { > mixin genInts!(); > writeln(i0); > writeln(i1); > } > > > Expected output: > 5 > 5 > > Actual output is two garbage integer values. -- "If you're arguing, you're losing." -- Mike Thomas