4

我看到一个定义如下的类:

class Foo {
 public:
  template <typename T, typename... Args>
  Foo&& addElement(Args&&... args) {       <--- why do we return Foo&&
    elements_.emplace_back(
      std::make_unique<T>(std::forward<Args>(args)...));
    return std::move(*this);
  }

 private:
  std::vector<std::unique_ptr<Bar>> elements_;
};

我想不出任何返回函数类型的充分理由addElement()。返回右值引用是否有意义,或者这不是一个好主意?如果是这样,这样做的潜在原因是什么?

4

0 回答 0