Причина возврата ссылки - PullRequest
0 голосов
/ 30 августа 2018

Я вижу класс, определенный следующим образом:

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(). Имеет ли смысл возвращать ссылку на rvalue или это не очень хорошая идея? Если да, то какова потенциальная причина для этого?

...