1 // PR c++/52126 2 // { dg-do compile } 3 4 template <class T> struct Z {}; 5 6 template<typename T> 7 struct A 8 { 9 struct B; 10 struct C; 11 struct D; 12 struct E; 13 struct F; 14 }; 15 16 template <class T> 17 struct A<T>::B : A<T> 18 { 19 using A::nonexist; // { dg-error "has not been declared" } 20 }; 21 22 template <class T> 23 struct A<T>::C : A 24 { 25 using A::nonexist; // { dg-error "has not been declared" } 26 }; 27 28 template <class T> 29 struct A<T>::D : A<T> 30 { 31 using A<T>::nonexist; // { dg-error "has not been declared" } 32 }; 33 34 template <class T> 35 struct A<T>::E : A 36 { 37 using A<T>::nonexist; // { dg-error "has not been declared" } 38 }; 39 40 template <class T> 41 struct A<T>::F : Z<T> 42 { 43 using Z<T>::nonexist; 44 }; 45