在 C++ 标准 ( std::for_each
) 的 §25.2.4.2 中:
template<class InputIterator, class Function> Function
for_each(InputIterator first, InputIterator last, Function f);
效果:将 f 应用于取消引用范围 [first,last) 中的每个迭代器的结果, 从 first 开始,一直到 last - 1。
- 这是否意味着 f按顺序应用于容器的元素?
- 如果是这样,libstdc++的并行模式是否违反了它?
- 如果不是,为什么第 6.5.4 节中基于范围的 for 循环没有实现为对 std::for_each 的调用?(这将允许基于范围的 for 循环也被实现自动并行化)