| // Copyright (C) 2002 Free Software Foundation | |
| // Origin: C++/70 | |
| // Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net> | |
| // { dg-do compile } | |
| template <class T> | |
| struct S; | |
| template <class T> | |
| void operator* (S<T>, S<T>); | |
| template <class T> | |
| struct S | |
| { | |
| friend void operator*<> (S, S); // { } // okay | |
| void operator* (T) { } | |
| }; | |
| template <class T> | |
| void operator* (S<T>, S<T>) { } | |
| int main() | |
| { | |
| S<int> s1, s2; | |
| s1 * s2; | |
| s1 * 2; | |
| } |