On 10/13/17 2:33 AM, Jacob Carlborg wrote:
Hmm, I didn't know that syntax was legal. But apparently it's some form
of typesafe variadic function [1]. It also work for built-in types:
void foo(int i ...){}
void main()
{
foo(3);
foo(3, 4); // error, too many arguments
}
Not sure what the purpose of the latter is.
[1] https://dlang.org/spec/function.html#typesafe_variadic_functions
I believe it probably calls the builtin constructor:
auto i = int(3);
auto i = int(3, 4); // error
Indeed it seems useless to have such a thing, as most builtin ctors
would be equivalent to passing a convertible value anyway.
-Steve