Re: About default parameters in variadic templates

2012-09-18 Thread Don Clugston

On 17/09/12 14:42, Andrej Mitrovic wrote:

Related: http://d.puremagic.com/issues/show_bug.cgi?id=8676



A lot of code could be stripped if there was a way to set an optional
last parameter for variadics. lockstep could then be written as:

auto newLockstep(Args...)(Args args, StoppingPolicy stoppingPolicy =
StoppingPolicy.shortest)
 if (allSatisfy!(isInputRange, staticMap!(Unqual, Args)))
{
 static if (Args.length  1)
 {
 return Lockstep!(Args)(args, stoppingPolicy);
 }
 else
 {
 return args[0];
 }
}



but if you don't specify the last StoppingPolicy argument at the call
site it won't compile:

foreach (x, y; newLockstep(arr1, arr2)) { }

test.d(32): Error: template test.newLockstep does not match any
function template declaration
test.d(14): Error: template test.newLockstep(Args...) if
(allSatisfy!(isInputRange,staticMap!(Unqual,Args))) cannot deduce
template function from argument types !()(int[],int[])


That just looks like a bug to me. Please enter it in Bugzilla.




Re: About default parameters in variadic templates

2012-09-18 Thread Andrej Mitrovic
On 9/18/12, Don Clugston d...@nospam.com wrote:
 That just looks like a bug to me. Please enter it in Bugzilla.

Ok: http://d.puremagic.com/issues/show_bug.cgi?id=8687

Hope Walter agrees with it.