| // { dg-do run } | |
| template <class T> | |
| class C; | |
| template <class T> | |
| struct S | |
| { | |
| template <class U> | |
| void f(U u1, U u2) {} | |
| template <class U> | |
| void f(U u) | |
| { | |
| C<T> ct; | |
| ct.i = 3; | |
| } | |
| }; | |
| template <class T> | |
| class C | |
| { | |
| template <class U> | |
| friend void S<T>::f(U); | |
| int i; | |
| }; | |
| int main() | |
| { | |
| S<int> si; | |
| si.f(3.0); | |
| } |