现代编译器支持GNU语句表达式(C和C++语言),需要使用哪些版本才能使用语句表达式?
语句表达式类似于({ code; code; retval })
:
int b=56;
int c=({int a; a=sin(b); a;});
我已经了解到一些这样的编译器:
- GCC >=3
- Clang/LLVM >= 3.0.0
- Intel C++ Compiler >= 6.0(Linux版本,请查看第4页;位数有限)
- Sun Studio >= 12(新语言扩展)
- IBM XL for z/OS(标记为IBM扩展)
- Open64(因为它使用 osprey-gcc 前端)
这个编译器似乎不支持这个(我不确定):
- MS Visual C ++
PS. 这里列出了一些C/C ++编译器(链接),但我只对成熟的编译器感兴趣,这些编译器被广泛使用(例如不是tcc或turbo c)。