decay_t
in is_execution_policy_v
should be remove_cvref_t
Section: 26.3.5 [algorithms.parallel.overloads] Status: C++20 Submitter: Billy O'Neal III Opened: 2018-02-07 Last modified: 2021-02-25
Priority: 0
View all issues with C++20 status.
Discussion:
Our compiler throughput friends were hissing at us about throughput regressions in C++17 mode caused by the addition of the parallel algorithms' signatures. One change to reduce the throughput impact would be to remove unnecessary decay here, as LWG has done in other places recently.
[ 2018-02-13 Moved to Tentatively Ready after 7 positive votes on c++std-lib. ]
[2018-06 Rapperswil: Adopted]
Proposed resolution:
This wording is relative to N4713.
Modify 26.3.5 [algorithms.parallel.overloads] as indicated:
-4- Parallel algorithms shall not participate in overload resolution unless
is_execution_policy_v<
isdecayremove_cvref_t<ExecutionPolicy>>true
.