On 11/24/2016 06:47 PM, Steven Schveighoffer wrote:
void foo(T)(T t){writeln("a");}
void foo(T...)(T t){writeln("b");}

foo(1);

Compiles? If so, which prints out?

I was surprised by the answer. I can't find docs for it. Is the behavior
intended?

Took me a bit to find it, but it is documented:

"If both a template with a sequence parameter and a template without a sequence parameter exactly match a template instantiation, the template without a TemplateSequenceParameter is selected."

https://dlang.org/spec/template.html#variadic_template_specialization

Reply via email to