Created on 2025-06-03.00:00:00 last changed 3 weeks ago
Proposed resolution:
This wording is relative to N5008.
Modify [execpol.seq] as indicated:
class execution::sequenced_policy {unspecifiedpublic: explicit sequenced_policy() = default; };
Modify [execpol.par] as indicated:
class execution::parallel_policy {unspecifiedpublic: explicit parallel_policy() = default; };
Modify [execpol.parunseq] as indicated:
class execution::parallel_unsequenced_policy {unspecifiedpublic: explicit parallel_unsequenced_policy() = default; };
Modify [execpol.unseq] as indicated:
class execution::unsequenced_policy {unspecifiedpublic: explicit unsequenced_policy() = default; };
Modify [execpol.objects] as indicated:
inline constexpr execution::sequenced_policy execution::seq{unspecified}; inline constexpr execution::parallel_policy execution::par{unspecified}; inline constexpr execution::parallel_unsequenced_policy execution::par_unseq{unspecified}; inline constexpr execution::unsequenced_policy execution::unseq{unspecified};
Existing standard execution policy types don't hold any state, and mostly act as disambiguating tags in parallel algorithms. Perhaps it will be better to ensure them to be similar to construction tag types, which possibly enables more desired usages.
Currently, libc++ makes these types non-movable, which is arguable undesired per the decision made in P3136R1.History | |||
---|---|---|---|
Date | User | Action | Args |
2025-06-06 17:34:49 | admin | set | messages: + msg14781 |
2025-06-03 00:00:00 | admin | create |