cppreference 说:当引用绑定到纯右值时,会创建一个临时对象。它们是指 const 左值引用和右值引用吗?:
当纯右值具体化时,会创建临时对象,以便将其用作左值,这会在以下情况下发生 (C++17 起):
如果他们的意思是这样,绑定到相同类型纯右值的右值引用和常量左值引用是否会创建临时值?我的意思是,这是否正在发生:
const int &x = 10; // does this creates temporary?
int &&x2 = 10; // does this creates temporary?
唯一允许绑定到对象右值(包括纯右值)的引用是右值引用和const
non-volatile
左值引用。当纯右值发生这样的绑定时,就会具体化一个临时对象。因此,OP 的两个示例中都发生了临时物化:
const int &x = 10;
int &&x2 = 10;
第一个临时文件(值为 10)将在以下情况下被销毁:x
超出范围。第二个临时值(也具有值 10,但可以使用以下命令修改其值)x2
)将被销毁时x2
超出范围。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)