1 // { dg-do compile } 2 3 // PR c++/3663 4 // Enforce access of nested type. 5 6 template <typename A> 7 class S { 8 class T {}; // { dg-message "private" } 9 }; 10 11 template <typename A> f(A)12typename A::T* f (A) { // { dg-error "this context" } 13 return 0; 14 } 15 g()16void g () { 17 f (S<int> ()); // { dg-message "required|no match" } 18 } 19