1// PR c++/34206
2
3template<class _T1, class _T2> struct pair { };
4template <class T0, class T1> struct tuple {
5  template <class U1, class U2>
6  tuple& operator=(const pair<U1, U2>& k) { }
7};
8template<class T1, class T2> inline tuple<T1&, T2&> tie(T1& t1, T2& t2) { }
9
10template <class T> struct A
11{
12  typedef T type;
13  pair<type, type> f();
14};
15
16void g(A<int> a)
17{
18  typedef A<int>::type type;
19  type begin1, end1;
20  tie(begin1, end1) = a.f();
21}
22