// PR c++/89648 // { dg-do compile { target c++11 } } template struct A { static const T e = U; }; template struct B; template struct C; template using E = typename C::k; template struct F {}; template using G = F; template using H = F; template using I = G; template class J {}; template struct B> : A {}; template struct C> : C> {}; template struct C<0, J> { typedef T k; }; template E> qux (J); struct D { template void foo (T) {} }; void bar (...); struct K { void baz (int &); int l; D m; int *n, o; }; template void quux (int, int *, D x, int *, int, int, T, U, V y, H) { x.foo ([=] { bar (qux (y)...); }); } void K::baz (int &x) { J p; int q, r; long s; quux (x, &l, m, n, o, r, s, q, p, I::e> ()); }