1// { dg-do assemble } 2 3template <class T> 4class S 5{ 6protected: 7 template <class U> 8 void f(U); // { dg-error "" } is protected 9 10private: 11 template <class U> 12 void g(U); // { dg-error "" } is private 13}; 14 15 16void f() 17{ 18 S<double> s; 19 s.f(3); // { dg-error "" } within this context 20 s.g(2.0); // { dg-error "" } within this context 21} 22