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

-- 
Perhaps the most widespread illusion is that if we were in power we would 
behave very differently from those who now hold it---when, in truth, in order 
to get power we would have to become very much like them. -- Unknown

Reply via email to