2016 - 2024

感恩一路有你

右值引用有什么用 C 中,常规函数返回值是右值.怎么理解?

浏览量:2127 时间:2021-03-11 07:17:56 作者:admin

C 中,常规函数返回值是右值.怎么理解?

因为新的C 11标准有一个左参考值,所以它有一个右参考值。有关详细信息,请参见新的c11标准。LVR没有复制操作,这将提高性能。

左值,右值的问题,还有返回左值与右值的区别,使用引用、const对左值,右值的影响?

左值用于存储数据,因此它必须是可以存储数据的内存单元,而不是常量或立即数。正确的值是data,它可以是存储在数据存储单元中的数据、常量或立即数。通常,函数的返回值只能用作正确的值。如果函数的返回值被声明为引用,那么这样的函数也可以是左手函数。

c 返回引用类型的问题引用作为返回类型是什么意思啊?

1将print的形式参数更改为const&。我不明白为什么要改成正确的价值报价。如果有人能向我解释,我将非常感谢你。a&;接受常数意味着什么。

在我看来,是否返回引用实际上取决于返回值是否是新对象。当然,操作符有自己的规则,也就是说,它们模仿内置操作符的行为(当然,它们不能完全相同)。pre结果是一个l值,post结果是一个right值,因此重载的前者返回一个l值非常量引用,而重载的后者则不返回。我不确定后者是否会返回正确的值引用,但它似乎毫无用处。引用是否有常量取决于具体情况。

3. 至于返回的prvalue是否应该是const,Scott Meyers认为应该在effective C中进行,我不知道他是否还这么认为,但这似乎带来了一些麻烦(例如,除了class type和array type之外,其他类型的prvalue不受const限制)。此外,const和right value之间没有关系,尽管它们的行为确实重叠:这是C自己的设计问题。

c 中的返回值优化什么时候编译器才指向返?

根据现代C中的介绍,编译器有两个RVO条件。返回的值类型与函数签名的值类型相同。返回是本地对象。现在让我们考虑下面的语句return STD::move(W)。此时,返回的不是本地对象,而是本地对象的正确值引用。编译器此时无法优化RVO。它所能做的就是根据STD::move(W)构造一个临时对象,然后将临时对象分配给最终目标。所以,不要试图返回对本地对象的正确值引用。我们来谈谈右值引用和函数之间的关系。第一个例子:STD::vector

右值引用有什么用 左值引用和右值引用的区别 右值引用做返回值

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。