哪些现代编译器支持 Gnu Statement 表达式(C 和 C++ 语言)。我应该使用什么版本的语句表达式?
语句表达式类似于({ code; code; retval })
:
int b=56;
int c=({int a; a=sin(b); a;});
我已经知道一些这样的编译器:
- 海湾合作委员会 >=3
- clang /LLVM >= 3.0.0
- 英特尔 C++ 编译器 >= 6.0(Linux 版本,check page 4 ;位 limited)
- Sun Studio >= 12 ( New Language Extensions )
- IBM XL for z/OS ( marked as IBM extension )
- Open64(因为它使用 osprey-gcc 前端)
这个编译器似乎不支持这个(我不确定):
- MS Visual C++
附言。列出了一些 C/C++ 编译器 here但我只对广泛使用的成熟编译器感兴趣(例如不是 tcc 或 turbo c)
最佳答案
The PathScale® EKOPath Compiler Suite
通过“−std=gnu99”支持 gnu99
关于GNU 语句表达式的编译器支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440021/