On 03/23/2012 11:52 PM, H. S. Teoh wrote:
Code:
struct S {
int f(K)(K x) {
return 1;
}
void func(K)(inout(K) x) {
auto h = f(x);
}
}
void main() {
S s;
s.func("abc"); // This is line 44
}
This refuses to compile:
test2.d(44): Error: template test2.S.func(K) does not match any function
template declaration
test2.d(44): Error: template test2.S.func(K) cannot deduce template function
from argument types !()(string)
Removing 'inout' fixes the problem. But I don't understand why.
T
You already brought this up IIRC. The IFTI matching algorithm is too
weak. I think it should work.