2689. Parallel versions of std::copy and std::move shouldn't be in order
Section: 28.6.1 [alg.copy], 28.6.2 [alg.move] Status: C++17
Submitter: Tim Song Opened: 2016-03-23 Last modified: 2017-07-30
View all other issues in [alg.copy].
View all issues with C++17 status.
28.4.5 [algorithms.parallel.overloads]/2 says that "Unless otherwise specified, the semantics of
ExecutionPolicy algorithm overloads are identical to their overloads without."
There's no "otherwise specified" for the ExecutionPolicy overloads for std::copy and std::move,
so the requirement that they "start from first and proceed to last" in the original algorithm's description would
seem to apply, which defeats the whole point of adding a parallel overload.
[2016-05 Issues Telecon]
Marshall noted that all three versions of copy have subtly different wording, and suggested that they should not.
This wording is relative to N4582.
Insert the following paragraphs after 28.6.1 [alg.copy]/4:
Insert the following paragraphs after 28.6.2 [alg.move]/4: