C++14 enforces copy ellision in this case.
also silences warning of
src/osd/scheduler/mClockScheduler.cc:122:21: warning: redundant move in return statement [-Wredundant-move]
122 | return std::move(ret);
| ~~~~~~~~~^~~~~
Signed-off-by: Kefu Chai <kchai@redhat.com>
WorkItem mClockScheduler::dequeue()
{
if (!immediate.empty()) {
- auto ret = std::move(immediate.back());
+ WorkItem work_item{std::move(immediate.back())};
immediate.pop_back();
- return std::move(ret);
+ return work_item;
} else {
mclock_queue_t::PullReq result = scheduler.pull_request();
if (result.is_future()) {
} else if (result.is_none()) {
ceph_assert(
0 == "Impossible, must have checked empty() first");
- return std::move(*(OpSchedulerItem*)nullptr);
+ return {};
} else {
ceph_assert(result.is_retn());