折叠表达式(C++17起)
https://zh.cppreference.com/w/cpp/language/fold
折叠表达式(C++17起)
折叠表达式的实例化按如下方式展开成表达式 e:
- 一元右折叠 (E op ...) 成为 (E1 op (... op (EN-1 op EN)))
- 一元左折叠 (... op E) 成为 (((E1 op E2) op ...) op EN)
- 二元右折叠 (E op ... op I) 成为 (E1 op (... op (EN−1 op (EN op I))))
- 二元左折叠 (I op ... op E) 成为 ((((I op E1) op E2) op ...) op EN)