如果函数已经有右值引用,为什么要使用std :: move

问题描述 投票:2回答:2

[我正在读一本关于用c ++实现的数据结构的书,我听不懂代码片段,它是向量类的一部分

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

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

另一个问题是,如果我们有一个类对象的右值引用,我们仍然需要如果我们想调用move而不是复制权,可以在其成员上使用std :: move吗?像下面的代码:

A& operator=(A&& other) {
     member = std::move(other.member);
     return *this;
}

预先感谢。

c++ std move
2个回答
2
投票

std :: mour这里不需要吗?

2
投票
© www.soinside.com 2019 - 2024. All rights reserved.