Is this a bug?
Ali Çehreli
acehreli at yahoo.com
Tue Oct 16 02:13:21 UTC 2018
On 10/15/2018 01:36 PM, Márcio Martins wrote:
> Considering that the declaration is legal, and that the template
> parameter deduction works when Args.length == 0, but stops working when
> Args.length > 0.
For deduction to work, there must be function arguments. So, just add
Args to the function parameter list and all works:
import std.stdio;
void incx(T, Args...)(ref T t, Args) { // <-- Added Args
++t.x;
}
static struct Test(T) {
T x;
}
void main() {
Test!uint t;
t.incx();
t.incx!();
incx(t);
t.incx(1, 2, 3); // <-- Removed '!'
incx(t, 1, 2, 3);
writeln(t.x);
}
Ali
More information about the Digitalmars-d-learn
mailing list