https://issues.dlang.org/show_bug.cgi?id=12620
--- Comment #1 from Andrej Mitrovic <[email protected]> --- (In reply to Andrej Mitrovic from comment #0) > ----- > template Foo(alias sym) { pragma(msg, "Foo1"); } > template Foo(alias int[] sym) { pragma(msg, "Foo2"); } > template Foo(alias float[] sym) { pragma(msg, "Foo3"); } > > void main() > { > alias foo1 = Foo!(1); // instantiates #1, ok > alias foo2 = Foo!([1]); // instantiates #2, ok > alias foo3 = Foo!([1.0]); // instantiates #1 instead of #3! > } > ----- Changing the third overload to use double[] instead of float[] fixes this. So it must be some issue with a missed implicit conversion. --
