gpt4 book ai didi

c++ - std::move 是否总是按预期工作?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:21:13 25 4
gpt4 key购买 nike

据我所知std::move (与 static_cast<T&&> 相同)将变量转换为右值并分配给左值,因此我认为在以下代码中:

int a = 1;
int b = static_cast<int&&>(a);

ba具有相同的地址,但在 VS 中,它打印不同的地址。

int a = 1;
int b = static_cast<int&&>(a);
cout << hex << &a << endl;
cout << hex << &b << endl;

如果在此之后 a仍然指向不同的内存位置,使用 std::move 有什么好处?在这种情况下?

最佳答案

仅仅因为您“移动”了它们并不意味着它们将共享相同的地址。移动一个值是一个高级抽象,像 int 这样的基本类型移动和复制是完全一样的,这就是发生在这里。我建议你阅读 excellent post on std::move了解它的作用和用途。

关于c++ - std::move 是否总是按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44649349/

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