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.

Reply via email to