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()25 void Foo()
26 {
27   NS::User<long> decl;
28   decl.method();
29 }
30