#include <iostream>
using namespace std;

struct ACE_Time_Value { };
ostream &operator<<(ostream &os, const ACE_Time_Value &) { os << "Apple" ; }
void foo(const ACE_Time_Value &) { cout << "Cherry" << endl; }

namespace mine {
	ostream &operator<<(ostream &os, const ACE_Time_Value &) { os << "Banana" ; }
	void foo(const ACE_Time_Value &) { cout << "Durian" << endl; }

	void bar() {
		ACE_Time_Value t;
		::mine::foo(t); // OK
		// cout << "The current time is " <<
		//   t << endl; // error: ambiguous overload for 'operator<<'
	}
}

int main() {
	mine::bar();
}