gpt4 book ai didi

c++ - 什么时候 std::move 是多余的?

转载 作者:太空狗 更新时间:2023-10-29 20:12:46 25 4
gpt4 key购买 nike

简单地说,我有这个类,我想在其中移动包装的对象。

std::string m_S;
string_t(string_t&& s)
: m_S(s.m_S)
{
}

为了完整起见,我省略了周围的类结构,只是添加了成员​​ m_S

我是否需要用 std::move 包装成员访问权限,或者这是否可以正常工作,因为 s 是作为右值引用传递的?

最佳答案

你确实需要移动到这里。 s.m_S 是一个左值 表达式,因此不会绑定(bind)到 _rvalue_ 引用。

甚至 s 本身也是一个 lvalue 表达式,所以如果您想使用它来移动构造一个表达式,您还需要 move变量。

关于c++ - 什么时候 std::move 是多余的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25769500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com