【问题标题】:How to return && object from function? [duplicate]如何从函数返回 && 对象? [复制]
【发布时间】:2019-10-13 01:21:15
【问题描述】:

我有 TTempTable 带有移动语义的课程。我写了

TTempTable&& MyFunction() {
   TTempTable tmp = f(...);
   ...
   return std::move(tmp);
}

并且没有编译器错误。

这是正确的吗?

【问题讨论】:

标签: c++ return-value rvalue-reference


【解决方案1】:

不,不正确。

你是returning a reference to a local variable。该引用悬而未决。

就像任何悬而未决的东西一样,编译器不会 [总是] 为您诊断它。

按值返回,并删除std::move (it's redundant and inhibits elision)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-15
    • 2019-12-25
    • 1970-01-01
    • 2018-12-28
    • 2012-02-29
    • 2020-12-03
    • 1970-01-01
    • 2021-01-30
    相关资源
    最近更新 更多