#include <iostream>
#define OUT(x) if((y = x > 0 ? x : y), x > 1) cout << x+1
using namespace std;
int main() {
int y = 0;
OUT(0) << "message"; // OK
cout << y << endl;
OUT(1) << "message"; // OK
cout << y << endl;
OUT(2) << "message"; // OK
cout << y << endl;
if(0) {
OUT(2) << "message"; // OK, nothing printed
}
cout << y << endl;
if(0)
OUT(3) << "message"; // Nothing printed as well
cout << y << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2RlZmluZSBPVVQoeCkgaWYoKHkgPSB4ID4gMCA/IHggOiB5KSwgeCA+IDEpIGNvdXQgPDwgeCsxCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgeSA9IDA7CglPVVQoMCkgPDwgIm1lc3NhZ2UiOyAgICAgLy8gT0sKICAgICAgICBjb3V0IDw8IHkgPDwgZW5kbDsKCglPVVQoMSkgPDwgIm1lc3NhZ2UiOyAgICAgLy8gT0sKICAgICAgICBjb3V0IDw8IHkgPDwgZW5kbDsKCglPVVQoMikgPDwgIm1lc3NhZ2UiOyAgICAgLy8gT0sKICAgICAgICBjb3V0IDw8IHkgPDwgZW5kbDsKICAgIAoJaWYoMCkgewoJICAgT1VUKDIpIDw8ICJtZXNzYWdlIjsgICAgIC8vIE9LLCBub3RoaW5nIHByaW50ZWQKCX0KCiAgICAgICAgY291dCA8PCB5IDw8IGVuZGw7CgoJaWYoMCkKCSAgIE9VVCgzKSA8PCAibWVzc2FnZSI7ICAgICAvLyBOb3RoaW5nIHByaW50ZWQgYXMgd2VsbAoKICAgICAgICBjb3V0IDw8IHkgPDwgZW5kbDsgICAgICAgIAoJCglyZXR1cm4gMDsKfQ==