// { dg-do compile } // PR c++/5387 // Enforcing access of typename type. template struct A { typename T::template X x; // { dg-error "this context" } }; class B { template class X {}; // { dg-error "private" } }; int main() { A ab; // { dg-message "required" } }