struct A {
int a;
bool operator>(const int& inty) { return a > inty; }
friend bool less(A& foo, const int y);
};
/*template <class A, class B> bool operator<(const A& a, const B& b)
{ return a < b; }*/
bool less(struct A& foo, const int y)
{
return A.less(foo, y);
}
int main(void) {
A a; a.a = 1;
int b = 2;
if (less(a,b))
return 4;
return 0;
}
c3RydWN0IEEgewoJaW50IGE7Cglib29sIG9wZXJhdG9yPihjb25zdCBpbnQmIGludHkpIHsgcmV0dXJuIGEgPiBpbnR5OyB9CglmcmllbmQgYm9vbCBsZXNzKEEmIGZvbywgY29uc3QgaW50IHkpOwp9OwoKLyp0ZW1wbGF0ZSA8Y2xhc3MgQSwgY2xhc3MgQj4gYm9vbCBvcGVyYXRvcjwoY29uc3QgQSYgYSwgY29uc3QgQiYgYikKeyByZXR1cm4gYSA8IGI7IH0qLwoKYm9vbCBsZXNzKHN0cnVjdCBBJiBmb28sIGNvbnN0IGludCB5KQp7CglyZXR1cm4gQS5sZXNzKGZvbywgeSk7Cn0KCmludCBtYWluKHZvaWQpIHsKCUEgYTsgYS5hID0gMTsKCWludCBiID0gMjsKCWlmIChsZXNzKGEsYikpCgkJcmV0dXJuIDQ7CglyZXR1cm4gMDsKfQo=