// PR c++/34206 template struct pair { }; template struct tuple { template tuple& operator=(const pair& k) { } }; template inline tuple tie(T1& t1, T2& t2) { } template struct A { typedef T type; pair f(); }; void g(A a) { typedef A::type type; type begin1, end1; tie(begin1, end1) = a.f(); }