#include <iostream>
#define DEBUG
using namespace std;
#ifdef DEBUG
#define DECLARE_DEBUG_PARAM(...) __VA_ARGS__
#define PASS_DEBUG_PARAM(...) __VA_ARGS__
#else
#define DECLARE_DEBUG_PARAM(...)
#define PASS_DEBUG_PARAM(...)
#endif
int foo1(DECLARE_DEBUG_PARAM(const bool param)) {
#ifdef DEBUG
if(param) {
cout << "DEBUG true\n";
} else {
cout << "DEBUG false\n";
}
#else
cout << "RETAIL\n";
#endif
}
int foo2(int DECLARE_DEBUG_PARAM(, const bool param)) {
#ifdef DEBUG
if(param) {
cout << "DEBUG true\n";
} else {
cout << "DEBUG false\n";
}
#else
cout << "RETAIL\n";
#endif
}
int main() {
foo1(PASS_DEBUG_PARAM(true));
foo2(0 PASS_DEBUG_PARAM(,true));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojZGVmaW5lIERFQlVHCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojaWZkZWYgREVCVUcKI2RlZmluZSBERUNMQVJFX0RFQlVHX1BBUkFNKC4uLikgX19WQV9BUkdTX18KI2RlZmluZSBQQVNTX0RFQlVHX1BBUkFNKC4uLikgX19WQV9BUkdTX18KI2Vsc2UKI2RlZmluZSBERUNMQVJFX0RFQlVHX1BBUkFNKC4uLikKI2RlZmluZSBQQVNTX0RFQlVHX1BBUkFNKC4uLikKI2VuZGlmCgppbnQgZm9vMShERUNMQVJFX0RFQlVHX1BBUkFNKGNvbnN0IGJvb2wgcGFyYW0pKSB7CiNpZmRlZiBERUJVRwogICAgaWYocGFyYW0pIHsKICAgICAgICBjb3V0IDw8ICJERUJVRyB0cnVlXG4iOwogICAgfSBlbHNlIHsKICAgICAgICBjb3V0IDw8ICJERUJVRyBmYWxzZVxuIjsKICAgIH0KI2Vsc2UKICAgIGNvdXQgPDwgIlJFVEFJTFxuIjsKI2VuZGlmCn0KCmludCBmb28yKGludCBERUNMQVJFX0RFQlVHX1BBUkFNKCwgY29uc3QgYm9vbCBwYXJhbSkpIHsKI2lmZGVmIERFQlVHCiAgICBpZihwYXJhbSkgewogICAgICAgIGNvdXQgPDwgIkRFQlVHIHRydWVcbiI7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgIkRFQlVHIGZhbHNlXG4iOwogICAgfQojZWxzZQogICAgY291dCA8PCAiUkVUQUlMXG4iOwojZW5kaWYKfQoKaW50IG1haW4oKSB7CgkKICAgIGZvbzEoUEFTU19ERUJVR19QQVJBTSh0cnVlKSk7Cglmb28yKDAgUEFTU19ERUJVR19QQVJBTSgsdHJ1ZSkpOwoKCXJldHVybiAwOwp9