[Issue 16885] New: Cannot deduce function from argument type when mixing template instantiation and implicit convertion
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Dec 1 04:50:46 PST 2016
https://issues.dlang.org/show_bug.cgi?id=16885
Issue ID: 16885
Summary: Cannot deduce function from argument type when mixing
template instantiation and implicit convertion
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: mathias.lang at sociomantic.com
Sorry for the very generic title, didn't knew how to put it.
This snippet should compile:
```
T[] tail (T) (T[] v, in T[] i, out T[] o)
{
return v;
}
void main ()
{
const(char)[] p1, p2;
immutable(char)[] pi;
tail(p1, pi, p2);
}
```
As there is one possible instantiation for tail, which is `T=const(char)`.
But here the compiler fails to see it and spit out:
```
lol.d(11): Error: template lol.tail cannot deduce function from argument types
!()(const(char)[], string, const(char)[]), candidates are:
lol.d(1): lol.tail(T)(T[] v, in T[] i, out T[] o)
```
--
More information about the Digitalmars-d-bugs
mailing list