【发布时间】:2011-06-10 10:58:58
【问题描述】:
我遇到了这个奇怪的 C++ 程序。
#include <iostream>
using namespace std;
int main()
{
int a = ({int x; cin >> x; x;});
cout << a;
}
谁能解释发生了什么?这个结构叫什么?
【问题讨论】:
-
@VJo:我的意思是,这个“({})”结构叫什么?是不是类似于匿名函数?
-
+1 天哪,我以前从未见过这个。太糟糕了,它是 GNU C/C++ 特定的......
-
+1,看起来有点像 lambda 函数 :)
-
只有我一个人,还是 gcc 中的非标准扩展比其他任何编译器都多?
-
@David 是的,这里挤满了 b*ggers。这就是使用 -pedantic 几乎必不可少的原因。
标签: c++ syntax language-extension gcc-extensions gcc-statement-expression