C++代码中的({})语法结构正式名称是什么?
关于C++中
({})结构的说明 你看到的({})是GNU C++扩展中的语句表达式(Statement Expression),不属于标准C++语法范畴。
它的作用是允许在单个表达式中嵌入多条语句,整个表达式的返回值是块内最后一条语句的结果。比如你给出的代码里:
auto value = ({ auto it = container.find(key); it != container.end() ? it->second : default_value; });
先执行auto it = container.find(key);这条语句,然后以三目运算符的计算结果作为整个({})表达式的值,最终赋值给value。
需要注意的是,这种写法只能在支持GNU扩展的编译器(比如GCC、Clang)中使用,如果你需要编写标准C++代码,建议拆分语句实现相同逻辑:
auto it = container.find(key); auto value = it != container.end() ? it->second : default_value;
内容的提问来源于stack exchange,提问作者Hesky Fisher
相关产品推荐
相关产品推荐

