1 // { dg-do compile } 2 3 // Origin: Debian GCC maintainers <debian-gcc@lists.debian.org> 4 // Volker Reichelt <reichelt@gcc.gnu.org> 5 6 // PR c++/16706: Dependent type calculation during access checking 7 8 template<typename> struct A 9 { 10 A(); 11 template<typename> struct X {}; 12 }; 13 14 template<typename T> struct B 15 { 16 typename A<T>::template X<int> x; 17 template<typename> struct C; 18 }; 19 20 template<typename T> template<typename U> struct B<T>::C<U*> 21 { 22 C() {} 23 A<int> a; 24 }; 25 26 template struct B<int>::C<int*>; 27