prog.cpp: In function 'int main()':
prog.cpp:23:20: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
prog.cpp:15:6: note: candidate 1: bool operator<(const foo&, const foo&)
prog.cpp:9:9: note: candidate 2: bool foo::operator<(const foo&) const
prog.cpp:26:20: error: ambiguous overload for 'operator<' in 'f3 < f2'
prog.cpp:9:9: note: candidates are: bool foo::operator<(const foo&) const
prog.cpp:15:6: note: bool operator<(const foo&, const foo&)