struct A {
int a;
bool operator>(const int& inty) { return a > inty; }
};
template <class A, class B> auto operator<(const A& a, const B& b) -> decltype(a>b)
{ return a < b; }
int main(void) {
A a; a.a = 1;
int b = 2;
if (a < b)
return 4;
return 0;
}
c3RydWN0IEEgewoJaW50IGE7Cglib29sIG9wZXJhdG9yPihjb25zdCBpbnQmIGludHkpIHsgcmV0dXJuIGEgPiBpbnR5OyB9Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgQSwgY2xhc3MgQj4gYXV0byBvcGVyYXRvcjwoY29uc3QgQSYgYSwgY29uc3QgQiYgYikgLT4gZGVjbHR5cGUoYT5iKQp7IHJldHVybiBhIDwgYjsgfQoKaW50IG1haW4odm9pZCkgewoJQSBhOyBhLmEgPSAxOwoJaW50IGIgPSAyOwoJaWYgKGEgPCBiKQoJCXJldHVybiA0OwoJcmV0dXJuIDA7Cn0K