I've been getting into standard algorithms and noticed that you can specify an execution policy.
The documentation found here lists 4 policies:
std::execution::sequenced_policy
std::execution::parallel_policy
std::execution::parallel_unsequenced_policy
std::execution::unsequenced_policy
I understand the difference between parallel policies and sequenced ones, but I'm not sure why you'd also need unsequenced and unsequenced parallel?
From what I know you can't guarantee thread execution order anyway so wouldn't that make the parallel and parallel unsequenced policies identical?
Why add a normal unsequenced policy when if you can't parallelise the policy automatically falls back to a sequential one?
What am I missing?