右值引用 问答列表

std::move 在 RValue 引用函数上不起作用

作者:Kiran Thilak 提问时间:9/17/2019

在尝试学习std::move和rvalue引用时,我遇到了以下问题: int _tmain(int argc, _TCHAR* argv[]) { std::vector<int> vecNumb...

通过右值引用返回是否更有效?

作者:Neil G 提问时间:7/13/2009

例如: Beta_ab&& Beta::toAB() const { return move(Beta_ab(1, 1)); } ...

将 std::istream&amp;&amp; 作为参数是否合理?

作者:spraff 提问时间:1/16/2019

我遇到了这样做的代码: SomeObject parse (std::istream && input) {.... 参数是右值引用,这通常意味着函数旨在获取参数的所有权。这并不完全是这里发生的...

T&amp;&amp;(双&amp;符号)在C++11中是什么意思?

作者:paxdiablo 提问时间:3/30/2011

我一直在研究 C++11 的一些新功能,我注意到的一个是声明变量中的双 & 符号,例如 .T&& var 首先,这只野兽叫什么?我希望谷歌能允许我们搜索这样的标点符号。 这究竟意味着什么? 乍一...

std::forward 的主要目的是什么,它解决了哪些问题?

作者:Steveng 提问时间:8/27/2010

在完全转发中,用于将已命名的右值引用转换为未命名的右值引用。这样做的目的是什么?如果我们将 & 保留为左值,这将如何影响被调用的函数?std::forwardt1t2innert1t2 templa...

为什么 std::move 被命名为 std::move?

作者:Howard Hinnant 提问时间:1/26/2014

该函数根本没有真正移动任何东西。 它只是对右值的强制转换。 为什么要这样做? 这不是误导吗?std::move(x)...

禁用复制/移动省略时如何有效地返回对象?

作者:chakmeshma 提问时间:10/21/2023

假设在编译时禁用了复制省略,那么以下操作是否是避免不必要的复制(模拟复制省略)的有效做法? Container getContainer() { Container c; return c; ...

转换为右值引用可防止复制省略

作者:pauk 提问时间:10/29/2023

我阅读了更多相关文章,但没有一个答案能澄清我的疑问。为什么在下面的代码中,只有在没有强制转换为右值引用时才会进行优化,否则将调用移动(是否提供)或复制(如果没有提供移动构造函数)构造函数。 stru...

如果对象具有用户定义/声明的析构函数,为什么编译器将static_cast添加到 const rvalue ref

作者:cpp 提问时间:11/8/2023

如以下示例所示 struct Apple { ~Apple() {}; }; int main() { Apple a1; Apple a2 = std::move(a1); } 和例子...

是否可以编写一个可以独占存储左值引用或对象的类?

作者:TwistedBlizzard 提问时间:11/11/2023

我厌倦了按值传递我的所有对象,然后移动,或者重载左值和右值。我正在尝试编写一个类,如果将右值传递到构造函数中,该类可以存储左值引用或普通对象。 这是骨架: template<typename T>...


共11条 当前第1页