1 // { dg-do compile } 2 // Origin: Wolfgang Bangerth <bangerth@ticam.utexas.edu> 3 4 // PR c++/8099 5 // Partial specialization as friend class 6 7 template <int N, typename T> struct X; 8 template <typename T> struct X<1,T>; 9 10 template <typename P> class Y { 11 static int i; 12 template <int N, typename T> friend struct X; 13 friend struct X<1,P>; 14 }; 15 16 template <typename T> struct X<1,T> { 17 X () { Y<T>::i; } // access private field 18 }; 19