Я читал об этих новых политиках выполнения в C ++ 17 на cppreference.com: 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;
}
Задача ещё не решена.
Других решений пока нет …