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