如何解决将 c-tor 移动到带有按值参数的函数的局部变量的移动
试图澄清我对何时发生移动的理解,以及何时最好编写按值而不是引用传递值的函数以从移动中获益。
void foo()
{
std::string localStr;
//
foo1(localStr);
}
void foo1(const std::string str)
{
}
在这种情况下,localStr 会被移动到 foo1 中吗?
void foo()
{
std::string localStr;
//
foo1(localStr);
//localStrisn't used anymore
}
void foo1(const std::string str)
{
foo2(str);
//str isn't used anymore
}
void foo2(const std::string str)
{
}
会不会有两个动作?
解决方法
您按值传递 str 的副本。它没有被移动。如果您使用指针或引用,则仅复制地址。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。