<分区>
我有带有移动语法的 TTempTable
类。我写了
TTempTable&& MyFunction() {
TTempTable tmp = f(...);
...
return std::move(tmp);
}
没有编译器错误。
这是正确的吗?
<分区>
我有带有移动语法的 TTempTable
类。我写了
TTempTable&& MyFunction() {
TTempTable tmp = f(...);
...
return std::move(tmp);
}
没有编译器错误。
这是正确的吗?
最佳答案
不,这是不正确的。
你是 returning a reference to a local variable .该引用是悬空的。
像任何悬空的东西一样,编译器不会 [总是] 为您诊断它。
按值返回,并删除 std::move
( it's redundant and inhibits elision )。
关于c++ - 如何从函数返回 && 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56326523/