c++ - 如何从函数返回 && 对象?

标签 c++ return-value rvalue-reference

<分区>

我有带有移动语法的 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/

相关文章:

c++ - PostgreSQL C++ libpq编码UTF-8问题

c++ - 如何复制数据?

c++ - 如何在C++中为Windows中的用户获取最大进程数

Perl 编程和返回值

c++ - Eigen 和 c++11 赋值和引用

c++ - 输入结构体中数组的大小

linux - 汇编中系统调用的返回值是什么?

c# - 如何从存储过程中获取返回值?

c++ - 删除右值,保留左值引用(标准类型特征可用?)

c++ - move 构造函数和静态数组