1 // PR c++/59930 2 3 namespace NS { 4 template<typename T> class Holder 5 { 6 private: 7 void func(); 8 9 template<typename> friend class User; 10 }; 11 12 template class Holder<long>; 13 14 template<typename T> class User 15 { 16 public: method()17 void method() const 18 { 19 Holder<T> x; 20 x.func(); 21 } 22 }; 23 } // namespace 24 Foo()25void Foo() 26 { 27 NS::User<long> decl; 28 decl.method(); 29 } 30