1// { dg-do compile } 2 3// PR c++/5387 4// Enforcing access of typename type. 5 6template <class T> struct A { 7 typename T::X x; // { dg-error "this context" } 8 int f() { return T::i; } // { dg-error "this context" } 9}; 10 11class B { 12 typedef int X; // { dg-error "private" } 13 static int i; // { dg-error "private" } 14}; 15 16int main() 17{ 18 A<B> ab; // { dg-message "required" } 19 ab.f(); // { dg-message "required" } 20} 21