overload9.C   [plain text]


// PR c++/32232

template <typename T> struct A;
template <typename T> struct B {};
template <typename T> A<T>& operator<<(A<T>&, const B<T>&);

template <typename T>
struct A 
{
  A<T>& operator<<(A<T>& (*)(A<T>&)); // { dg-error "candidate" }
};

template <typename T> A<T>& foo(A<T>&);
extern A<char> c;

int main () {
  c << (1, foo); // { dg-error "no match" }
}