blob: f3a292c3fd3a2c8737c227a33c52020c1fefd1d6 [file] [log] [blame]
// PR c++/71738
template < class > struct S
{
template < class > struct A
{
template < class > struct B
{
template <class Z>
void operator=(Z) { S::i = 0; }
};
};
// Note that this friend declaration is useless, since nested classes are
// already friends of their enclosing class.
template < class X >
template < class Y >
template < class Z >
friend void A < X >::B < Y >::operator= (Z);
private:
static int i;
};
int main()
{
S<int>::A<int>::B<int> b;
b = 0;
}