<execution>
, <numeric>
: Change improper direct-initialization to copy-initialization in C++17 numeric algorithms
#4419
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follows up #4260.
Affected algorithms:
reduce
transform_reduce
exclusive_scan
inclusive_scan
transform_exclusive_scan
transform_inclusive_scan
The standard wording only uses "convertible" (from the results of operations to the element type) in the requirements of these algorithms, so direct-initialization can be sometimes wrong.
The construction from
_Transform_op(*_First)
seems incorrect formeow
scan
algorithms as the standard doesn't seem to require this. See also #3783. Perhaps we should remove such construction later._Implicitly_construct_in_place_
meow
function templates are added for performing implicit conversion in placements new and avoiding additional move, which may be important for WG21-P2408R5.