// Copyright (C) 2003 Free Software Foundation // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> // { dg-do compile } // Access checking during explicit instantiation. class A { typedef int X; // { dg-error "private" } }; class X { private: template <typename T> struct Y; }; template <> struct X::Y<int> { A::X x; // { dg-error "this context" } }; template <typename T> struct X::Y { typename T::X x; // { dg-error "this context" } }; template struct X::Y<A>; // { dg-error "instantiated" }