用来打包可变参数的
有四种语义
unary right fold (pack op …) unary left fold (… op pack) binary right fold (pack op … op init) binary left fold (init op … op pack)
|
template<typename... Args> auto sub_val_right(Args&&... args) { return (args - ...); }
template<typename... Args> auto sub_val_left(Args&&... args) { return (... - args); }
auto t = sub_val_right(2,3,4); auto t1 = sub_val_left(2,3,4);
|
template<typename... Args> auto sub_one_left(Args&&... args) { return (1 - ... - args); }
template<typename... Args> auto sub_one_right(Args&&... args) { return (args - ... - 1); }
auto t = sub_one_left(2,3,4); auto t1 = sub_one_right(2,3,4);
|