1// { dg-do assemble } 2// Origin: Mark Mitchell <mark@codesourcery.com> 3 4template <class T> 5class S { 6public: 7 template <class U> 8 class C { 9 public: 10 void f() { S::i = 3; } 11 }; 12 13 template <class U> 14 friend class C; 15 16private: 17 static int i; 18}; 19 20 21template void S<int>::C<double>::f(); 22