annotate gcc/testsuite/g++.dg/template/friend63.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/71738
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 template < class > struct S
kono
parents:
diff changeset
4 {
kono
parents:
diff changeset
5 template < class > struct A
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 template < class > struct B
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 template <class Z>
kono
parents:
diff changeset
10 void operator=(Z) { S::i = 0; }
kono
parents:
diff changeset
11 };
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 // Note that this friend declaration is useless, since nested classes are
kono
parents:
diff changeset
15 // already friends of their enclosing class.
kono
parents:
diff changeset
16 template < class X >
kono
parents:
diff changeset
17 template < class Y >
kono
parents:
diff changeset
18 template < class Z >
kono
parents:
diff changeset
19 friend void A < X >::B < Y >::operator= (Z);
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 private:
kono
parents:
diff changeset
22 static int i;
kono
parents:
diff changeset
23 };
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 int main()
kono
parents:
diff changeset
26 {
kono
parents:
diff changeset
27 S<int>::A<int>::B<int> b;
kono
parents:
diff changeset
28 b = 0;
kono
parents:
diff changeset
29 }