以下#define
部分有效:
#define OUT(x) \
if(x > 0) cout << "Hello "; \
if(x > 1) cout << x+1
OUT(1) << "message"; // OK
if(0) {
OUT(1) << "message"; // OK, nothing printed
}
if(0)
OUT(1) << "message"; // NO, printed anyway
我明白为什么它不起作用(if(0)
仅适用于if(x > 0)
)。
我找不到让它工作的方法。考虑到我不能在定义中放大括号,否则我将不允许使用插入运算符。