1 template <int I> struct B { };
2 
3 template <class T>
4 B<T::I> f();
5 
6 class A
7 {
8   static const int I = 42;
9   template <class T> friend B<T::I> f();
10 };
11 
main()12 int main()
13 {
14   f<A>();
15 }
16