gpt4 book ai didi

c++ - 引用如何绑定(bind)到纯右值?

转载 作者:行者123 更新时间:2023-12-05 02:32:51 45 4
gpt4 key购买 nike

cppreference says that :当引用绑定(bind)到纯右值时,会创建一个临时对象。它们是指 const 左值引用和右值引用吗?:

Temporary objects are created when a prvalue is materialized so that it can be used as a glvalue, which occurs (since C++17) in the following situations:

  • binding a reference to a prvalue

如果他们的意思是,绑定(bind)到相同类型的纯右值的右值引用和常量左值引用是否会创建一个临时值?我的意思是,这是否正在发生:

const int &x = 10; // does this creates temporary?

int &&x2 = 10; // does this creates temporary?

最佳答案

唯一允许绑定(bind)到对象右值(包括纯右值)的引用是右值引用和constvolatile 左值引用。当这种绑定(bind)发生在纯右值上时,一个临时对象被具体化。因此,在 OP 的两个示例中都会发生临时物化:

const int &x = 10;
int &&x2 = 10;

x 超出范围时,第一个临时变量(值为 10)将被销毁。当 x2 超出范围时,第二个临时值(也具有值 10,尽管可以使用 x2 修改其值)将被销毁。

关于c++ - 引用如何绑定(bind)到纯右值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71119987/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com