[Issue 15243] New: rejects-valid on variadic
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sat Oct 24 02:49:20 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=15243
Issue ID: 15243
Summary: rejects-valid on variadic
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: ace17 at free.fr
This code won't compile:
class E(Types...)
{
void apply(U)(U delegate(Types[0]) f0)
{
}
}
void test()
{
E!int e;
int f(int) { return 0; }
e.apply(&f);
}
ace at ANTEC:~/projects/bugs/dmd$ dmd -c rejectsvalid1.d
rejectsvalid1.d(15): Error: template rejectsvalid1.E!int.E.apply cannot deduce
function from argument types !()(int delegate(int _param_0)), candidates are:
rejectsvalid1.d(4): rejectsvalid1.E!int.E.apply(U)(U delegate(Types[0])
f0)
However, one can make it compile by introducing an alias:
class E(Types...)
{
alias Types[0] T0;
void apply(U)(U delegate(T0) f0)
{
}
}
I'm using DMD64 D Compiler v2.068.2
--
More information about the Digitalmars-d-bugs
mailing list