Merge from mainline.
[official-gcc.git] / gcc / testsuite / g++.dg / template / memfriend15.C
blob08db7aef65526d7a850f5f9fd5117b436c21d671
1 // { dg-do compile }
3 // Copyright (C) 2004 Free Software Foundation
4 // Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6 // Nested class of class template as friend
8 template<class T> struct A
10   struct B1
11   {
12   };
13   struct B2
14   {
15     void f();
16   };
19 class C {
20   int i;        // { dg-error "private" }
21   template<class T> friend struct A<T>::B1;
24 template<class T> void A<T>::B2::f()
26   C c;
27   c.i = 0;      // { dg-error "context" }
30 int main()
32   A<int>::B2 b1;
33   b1.f();       // { dg-error "instantiated" }