Take ownership of parameter by rvalue-reference

让人想犯罪 __ 提交于 2019-12-05 00:29:40

Yes, I think it is a valid way.

In the case of unique_ptr, it is non-copyable, so there is no danger of someone accidentally making a copy when they didn't intend to so both pass-by-value and pass-by-rvalue-reference signify taking ownership.

In the case of Data, pass-by-rvalue-reference documents that you are taking ownership and there is no danger of the caller accidentally making a copy when they didn't intend to.

Yes, it's a valid way. You can also pass it by value:

class A {
    A(Data data) : _data(std::move(data)) { }
};
Data data;
A a(std::move(data));
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!