Remove redundant moves in return statements #1090
Merged
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.
With recent g++ versions:
../include/bm/bm_sim/queueing.h:780:24: error: redundant move in return statement [-Werror=redundant-move]
780 | return std::move(fn);
| ^
../include/bm/bm_sim/queueing.h:780:24: note: remove 'std::move' call
cc1plus: all warnings being treated as error
While copy elision is not possible when retruning a function parameter,
if the other conditions for NVO are met, a move operation should be
used. The std::move doesn't cause the compiler to perform worse (unlike
for RVO), but it is redundant.