1// { dg-do assemble  }
2// Origin: Mark Mitchell <mark@codesourcery.com>
3
4class ostream;
5
6extern ostream& cout;
7
8class Foo { };
9
10ostream &operator<<(ostream &os, const Foo &)
11{
12  return os;
13}
14
15template<class T>
16const typename T::fooz &operator<<(const Foo &, const T &t)
17{
18  return t;
19}
20
21int main()
22{
23  Foo foo;
24
25  cout << foo;
26}
27