【发布时间】:2015-06-13 14:07:49
【问题描述】:
我正在看 C++17 fold expressions,我想知道为什么下面的程序输出
4 5 6
4 5 6
对于两个for_each 调用
template<typename F, typename... T>
void for_each1(F fun, T&&... args)
{
(fun (std::forward<T>(args)), ...);
}
template<typename F, typename... T>
void for_each2(F fun, T&&... args)
{
(..., fun (std::forward<T>(args)));
}
int main()
{
for_each1([](auto i) { std::cout << i << std::endl; }, 4, 5, 6);
std::cout << "-" << std::endl;
for_each2([](auto i) { std::cout << i << std::endl; }, 4, 5, 6);
}
我认为第二个折叠表达式是为了以相反的顺序输出数字
6 5 4
为什么结果是一样的?
【问题讨论】:
标签: c++ templates c++14 fold-expression