https://issues.dlang.org/show_bug.cgi?id=18850
ag0aep6g <ag0ae...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ag0ae...@gmail.com --- Comment #1 from ag0aep6g <ag0ae...@gmail.com> --- (In reply to Jonathan Marler from comment #0) > alias Foo = Foo!(T, T.init); Just that line alone shows the same behavior. And that might make it more obvious what's happening: In the struct body, "Foo" refers to the alias, not the templates. You can refer to the templates with `.Foo`: ---- struct Foo(T) { alias Foo = .Foo!(T, T.init); } struct Foo(T, T initialValue) { private T value = initialValue; } Foo!int n; ---- --