我正在读一本关于用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)