逗号表达式, C时代的 (exp1, exp2,exp3,exp4),依次执行,然后返回最后一个
一元右折叠表达式(C++17 引入)
利用参数包(Parameter Pack)的展开机制,在每个复制出的表达式之间用“逗号”连接起来。
语法: ( pack , ... )
展开规则: 如果你的参数包 Is... 是 0, 1, 2,那么
( 表达式(Is) , ... )
展开后就变成了标准的逗号表达式:(exp0,exp1,exp2)
发展逻辑:C++17 发现大家经常需要对参数包里的每个元素做同样的事情,于是借用了 C 时代的逗号表达式,发明了逗号折叠表达式,用来批量生成按顺序执行的代码。
【 在 DoorWay 的大作中提到: 】
: 为什么里面还要嵌套一个“小括号bbb”,来包围折叠的表达式(内部lambda2)?
: 为了每一轮都能定义新的 constexpr 局部变量:
: 在折叠表达式内部,如果你直接写一堆代码,它们在展开后会处于同一个作用域内。如果你直接连续写:
: ...................
--
FROM 113.132.10.*