В § 25.2.4.2 стандарта С++ (std::for_each
):
template<class InputIterator, class Function> Function
for_each(InputIterator first, InputIterator last, Function f);
Эффекты: Применяет f к результату разыменования каждого итератора в диапазон [первый, последний], , начиная с первого и продолжающийся до последнего - 1.
- Означает ли это, что f применяется к элементам контейнера в порядке?
- Если да, нарушает ли его параллельный режим libstdС++?
- Если нет, то почему цикл, основанный на диапазоне, в п. 6.5.5 не реализован как вызов std:: for_each? (это позволяло бы автоматическое распараллеливание циклов на основе диапазонов путем реализации)