#include <iostream>
struct X
{
int a;
friend bool operator<(const X& left, const X& right) { return left.a < right.a; }
private:
struct safe_zero_idiom;
public:
friend bool operator<(const X& left, safe_zero_idiom*) { return left.a < 0; }
};
int main()
{
X x{1}, y{-2};
//if (x < 3)
std::cout << (y < x) << "\n";
std::cout << (y < 0) << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFgKewoJaW50IGE7CglmcmllbmQgYm9vbCBvcGVyYXRvcjwoY29uc3QgWCYgbGVmdCwgY29uc3QgWCYgcmlnaHQpIHsgcmV0dXJuIGxlZnQuYSA8IHJpZ2h0LmE7IH0KcHJpdmF0ZToKCXN0cnVjdCBzYWZlX3plcm9faWRpb207CnB1YmxpYzoKCWZyaWVuZCBib29sIG9wZXJhdG9yPChjb25zdCBYJiBsZWZ0LCBzYWZlX3plcm9faWRpb20qKSB7IHJldHVybiBsZWZ0LmEgPCAwOyB9Cn07CgppbnQgbWFpbigpCnsKCVggeHsxfSwgeXstMn07CgkvL2lmICh4IDwgMykKCXN0ZDo6Y291dCA8PCAoeSA8IHgpIDw8ICJcbiI7CglzdGQ6OmNvdXQgPDwgKHkgPCAwKSA8PCAiXG4iOwp9