返回右值的 shared_ptr 成员

returning shared_ptr member of an rvalue

在 C++ Concurrency In Action - Practical MultiThreading 第 167 页中,有代码片段

 std::shared_ptr<T> wait_and_pop()
 {
     std::unique_ptr<node> const old_head=wait_pop_head();
     return old_head->data;
 }

为什么我们必须先将 assign rvalue wait_pop_head() 移动到 const 变量?为什么我们不能 shorthand 下面的代码?

std::shared_ptr<T> wait_and_pop()
{
    return wait_pop_head()->data;
}

确实,没有理由不能使用您的替代方案。

临时的会活得够久。

但有些人就是喜欢写出来。