// { dg-do compile } template struct b { template class a { template friend class a; T t_; public: a() {} a(a const &); }; }; template template b::a::a(a const &rhs): t_(*rhs.t_) {} int f () { b::a q; b::a w(q); return 0; }