我看到一个定义如下的类:
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()
的任何好的理由。返回右值引用是否有意义,或者这不是一个好主意?如果是这样,这样做的潜在原因是什么?