+++ /dev/null
-// Build don't link:
-
-template <class T> struct A {
- static void f();
-};
-
-template <class T> class B
-{
- friend class A<T>;
- static int i; // ERROR - private
-};
-
-template <class T> class C
-{
- template <class U>
- friend class A;
-
- static int i;
-};
-
-template <class T>
-void A<T>::f()
-{
- B<T>::i = 3;
- C<T>::i = 3;
- C<double>::i = 3;
- B<double>::i = 3; // ERROR - member `i' is private
-}
-
-template void A<int>::f(); // ERROR - instantiated from here