Is there a reason why template parameters can default to other
template parameters, but not regular parameters? For instance:
// OK
int foo(int x, int y = x)()
{
return x*y;
}
// Not OK
int foo(int x, int y = x)
{
return x*y;
}
When I noticed this it seemed arbitrary, but maybe there's a
reason?