// { dg-do compile } // Copyright (C) 2003 Free Software Foundation // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> // Member template function of member class template as friend template <class T> struct A { template <class U> struct B { template <class V> void f(V); }; }; class X { int i; template <class T> template <class U> template <class V> friend void A<T>::B<U>::f(V); }; template <class T> template <class U> template <class V> void A<T>::B<U>::f(V) { X x; x.i = 0; } int main() { A<char>::B<char> a1; a1.f(0); }