相关疑难解决方法(0)

在右值参考参数上使用std :: move的原因

我正在读一本关于用C ++实现的数据结构的书,我不明白代码片段吗?它是向量类的一部分

void push_back(object &&x) {
        //do something
        objects[size++] = std::move(x);
    }
Run Code Online (Sandbox Code Playgroud)

我知道std::move返回对象的右值引用,但是push_back成员函数已经具有右值引用x作为参数,std::move这里不是不必要的吗?

另一个问题是,如果我们有一个类对象的右值引用,std::move如果要调用move而不是copy right 还是需要在其成员上使用它?像下面的代码:

A& operator=(A&& other) {
     member = std::move(other.member);
     return *this;
}
Run Code Online (Sandbox Code Playgroud)

c++ rvalue-reference move-semantics c++11 value-categories

5
推荐指数
2
解决办法
106
查看次数