Created on 2019-10-10.00:00:00 last changed 58 months ago
Proposed resolution:
This wording is relative to N4830.
Modify [memory.syn], header <memory> synopsis, as indicated:
namespace std {
[…]
// [specialized.destroy], destroy
template<class T>
constexpr void destroy_at(T* location);
template<class ForwardIterator>
constexpr void destroy(ForwardIterator first, ForwardIterator last);
template<class ExecutionPolicy, class ForwardIterator>
constexpr void destroy(ExecutionPolicy&& exec, // see [algorithms.parallel.overloads]
ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class Size>
constexpr ForwardIterator destroy_n(ForwardIterator first, Size n);
template<class ExecutionPolicy, class ForwardIterator, class Size>
constexpr ForwardIterator destroy_n(ExecutionPolicy&& exec, // see [algorithms.parallel.overloads]
ForwardIterator first, Size n);
[…]
}
[ 2019-11 Marked as 'Ready' during Monday issue prioritization in Belfast ]
This issue was submitted as editorial issue cplusplus/draft#3181 but is considered non-editorial.
P0784R7, approved in Cologne, added "constexpr" markers to the overloads of destroy and destroy_n taking an ExecutionPolicy parameter. This seems to be in error; parallel algorithms should not be marked "constexpr". (None of the parallel algorithms in <algorithm> is marked "constexpr".)| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2021-02-25 10:48:01 | admin | set | status: wp -> c++20 |
| 2020-02-24 16:02:59 | admin | set | status: voting -> wp |
| 2020-01-17 04:54:50 | admin | set | status: ready -> voting |
| 2019-11-04 13:23:43 | admin | set | messages: + msg10723 |
| 2019-11-04 13:23:43 | admin | set | status: new -> ready |
| 2019-10-12 12:01:39 | admin | set | messages: + msg10699 |
| 2019-10-10 00:00:00 | admin | create | |