小编bob*_*obl的帖子

在C++中使用移动语义的正确方法是什么?

考虑以下代码:

class A {
private:
    std::string data;
public:
    void set_data(std::string&& data) {
        this->data = std::move(data); // line 6
    }
};

int main() {
    std::string move_me = "Some string";
    A a;
    a.set_data(std::move(move_me)); // line 13
}
Run Code Online (Sandbox Code Playgroud)

我知道我们需要调用std::move()第13行,以便它向左值引用转换左值(这听起来是否正确?我是新手).

但是,在第6行,我们需要std::move()再次使用吗?我假设没有,因为我们已经传递了一个右值引用,并且std::string将调用移动构造函数.那是对的吗?

c++ stl move move-semantics

1
推荐指数
1
解决办法
139
查看次数

标签 统计

c++ ×1

move ×1

move-semantics ×1

stl ×1