2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.dg / template / friend4.C
blobfabf3375bd2152c1039441809bbf775baceffee6
1 // { dg-do compile }
3 // Copyright (C) 2002 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 18 Dec 2001 <nathan@codesourcery.com>
6 // PR 109, dependent member friends
8 struct B
10   static int foo ();
11   struct N
12   {
13     static int bar ();
14   };
18 template <class T>
19 class A
21   friend int T::foo ();
22   friend int T::N::bar ();
23   
24   private:
25   static int m;
28 template <class T>
29 class C
31   friend struct T::N;
33   private:
34   static int m;
38 int B::foo ()
40   return A<B>::m;
43 int B::N::bar ()
45   return A<B>::m + C<B>::m;