cppreference.com で C++17 のこれらの新しい実行ポリシーについて読みました: https://en.cppreference.com/w/cpp/algorithm/execution_policy_tag_t
そして、コンパイラーがその可能性を最大限に最適化できるようにしたい場合、範囲ベースのループよりもそれらを優先する必要があるのではないかと考えていました。私はまだそれらを実装していないgccを使用しているので、テストすることはできませんが、将来的にはこれを好むべきです:
int a[] = {1,2};
std::for_each(std::execution::par_unseq, std::begin(a), std::end(a), [](int& p) {
++p;
});
またはこれ:
for(auto& p : a) {
++p;
}