On Saturday, 20 June 2026 at 12:10:47 UTC, Nick Treleaven wrote:
You only provided the `fmt` template argument, so `Args` is
inferred as an empty sequence. Your code could be supported if
`format` was changed to:
```d
template format(alias fmt)
{
typeof(fmt) format(Args...)(Args args) { ... }
}
```
Hmm, but in other places, function calls do support partial
ctargs specification.
Consider this example:
```
int fun (T1, T2) (T1 x, T2 y)
{
return x + y;
}
int gun (T1, Args...) (T1 x, Args args)
{
return x + args[0];
}
void main ()
{
auto a = fun !(int) (5, 7);
auto b = gun !(int) (5, 7);
import std.stdio : writeln;
writeln (a, " ", b); // 12 12
}
```
This does work, not only for `fun` with exactly one additional
argument, but also for `gun` with variable number of additional
arguments. What is the difference of this case with the
`map+format` case in the original question?
Ivan Kazmenko.