4 // Enforcing access of typename type.
6 template <class T> struct A {
7 typename T::X x; // { dg-error "this context" }
10 template <class T> struct A2 {
11 int f() { return T::i; } // { dg-error "this context" }
15 typedef int X; // { dg-message "private" }
16 static int i; // { dg-message "private" }
21 A<B> ab; // { dg-message "required" }
23 a2b.f(); // { dg-message "required" }