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;
}
c3RydWN0IEEgewogIGludCBhOwogIGJvb2wgb3BlcmF0b3I+KGNvbnN0IGludCYgaW50eSkgeyByZXR1cm4gYSA+IGludHk7IH0KfTsKCnRlbXBsYXRlIDxjbGFzcyBBLCBjbGFzcyBCPiBhdXRvIG9wZXJhdG9yPChjb25zdCBBJiBhLCBjb25zdCBCJiBiKSAtPiBkZWNsdHlwZShhPmIpIHsgcmV0dXJuIGEgPCBiOyB9CgppbnQgbWFpbih2b2lkKSB7CiAgQSBhOyBhLmEgPSAxOwogIGludCBiID0gMjsKICBpZiAoYSA8IGIpIHJldHVybiA0OwogIHJldHVybiAwOwp9