gpt4 book ai didi

c++ - 什么时候应该在函数返回值上使用 std::move?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:22:16 24 4
gpt4 key购买 nike

<分区>

在这种情况下

struct Foo {};
Foo meh() {
return std::move(Foo());
}

我很确定此 move 是不必要的,因为新创建的 Foo 将是一个 xvalue。

但是在这种情况下怎么办?

struct Foo {};
Foo meh() {
Foo foo;
//do something, but knowing that foo can safely be disposed of
//but does the compiler necessarily know it?
//we may have references/pointers to foo. how could the compiler know?
return std::move(foo); //so here the move is needed, right?
}

我想这里需要 move 吗?

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