首页 > 解决方案 > RValue 引用的大小是多少?

问题描述

RValue 引用的堆栈大小是多少?

例如在这样的情况下:

struct A { /* ... */ };
A getA()
    {
        A temp; 
        return temp;  
    }
A&& a1 = getA() ;

我知道编译器会延长临时的生命周期以匹配 a1 的生命周期,所以我假设 a1 必须占用堆栈上 A 对象的大小。

在将对象发送到获取 RValue 引用参数的函数的情况下呢?例如在这种情况下:

void f1(A&& a) {

}

堆栈上传递的内容的大小是多少?只是一个指针,还是 A 的大小?

标签: c++move-semanticsrvalue-reference

解决方案


推荐阅读