【发布时间】:2014-10-19 09:51:04
【问题描述】:
我发现你可以在 C++ 中做这样的事情:
int a = ({
int x = 12 + 3;
x*x + 7;
});
或者像这样:
bool x[] = {false, true, true, true, false};
if (({bool b = false; for (int i; i < 5; i++) if (x[i]) b = !b; b;}))
printf("aaaaaaa\n");
然后我发现我不能做这样的事情:
int a = ({if (2 > 1) return x; x*x;});
也没有
int a = ({if (2 > 1) x; x*x;});
也没有
int a = ({x; if (1 > 2) printf("aaaa\n");});
它是什么?从什么时候开始允许的?以及如何在右括号之前返回结果?
【问题讨论】:
标签: c++