1 // PR c++/52126 2 // { dg-do compile } 3 4 template<typename T> 5 struct A 6 { 7 int foo; 8 9 struct B; 10 struct C; 11 struct D; 12 struct E; 13 }; 14 15 template <class T> 16 struct A<T>::B : A<T> 17 { 18 using A::foo; 19 }; 20 21 template <class T> 22 struct A<T>::C : A 23 { 24 using A::foo; 25 }; 26 27 template <class T> 28 struct A<T>::D : A<T> 29 { 30 using A<T>::foo; 31 }; 32 33 template <class T> 34 struct A<T>::E : A 35 { 36 using A<T>::foo; 37 }; 38