rvalue-reference 相关问题

右值引用是C ++ 11中的一种新语言特性,表示对右值的引用。与参考折叠一起,它们用于实现和启用移动语义和完美转发。

使用rd引用参数移动std :: mo的原因

[我正在读一本关于用C ++实现的数据结构的书,我不懂代码片段,它是向量类的一部分void push_back(object && x){//做一些对象[...

回答 2 投票 4

Lambda闭包左值可以作为右值参考参数传递

我发现左值lambda闭包始终可以作为右值函数参数传递。请参见以下简单演示。 #include #include 使用名称空间...

回答 3 投票 1

通过右值数据成员来扩展临时对象的生存期,可以使用聚合,但不能使用构造函数,为什么?

我发现以下方案可以延长临时生命周期,我不知道是否应该,但是可以。 struct S {std :: vector && vec; }; int main(){S s1 {std :: ...

回答 1 投票 12

右值引用和局部变量的移动

在此代码段中,我分配了一个本地对象B,然后将其传递给另一个对象C的构造函数,该对象将其作为右值引用。然后,我将后者放入容器中。当我检索C和...

回答 1 投票 2

自定义类型转换运算符在转发引用上调用时不起作用(当对象通过值传递时起作用)

我无法理解此错误的本质,因此,如果标题更好,请原谅。该代码无法编译:template struct value_as_type {using type = decltype(v); ...

回答 1 投票 5

为什么在我的代码中调用复制构造函数而不是移动构造函数?

我正在尝试了解move构造函数和右值引用。因此,我在https://www.onlinegdb.com/online_c++_compiler上尝试了此代码。但是结果使我感到困惑。 #include #include ...

回答 2 投票 2

右值到左值转换?

为什么它是不可能的右值转换到左值?它是可以做到在相反方向转换虽然。技术上右值确实有一个内存地址,是不是?

回答 1 投票 10

移动语义 - 那是什么一回事呢? [重复]

可能重复:有人可以解释移动语义给我吗?可能有人点我一个很好的来源或解释在这里什么是移动语义?

回答 4 投票 10

避免构造函数中的const引用和rvalue引用的指数增长

我正在为一个机器学习库编写一些模板化的类,我很多时候都面临这个问题。我主要使用策略模式,其中类接收模板参数策略...

回答 4 投票 41

如何将rvalue引用从调用者传递给被调用者

假设我在#include下面有代码 void foo(std :: string && s){std :: cout << s; } void bar(std :: string && s){foo(s); } int main(){bar(“abc”);返回0; ...

回答 1 投票 0

C ++ 11 rvalues和移动语义混淆(return语句)

我试图理解rvalue引用并移动C ++ 11的语义。这些示例之间有什么区别,哪些不会执行矢量复制?第一个例子是std :: vector

回答 6 投票 396

RValue引用是否在将其绑定到另一个指针后删除它们的绑定(非指针)对象?

简短而简单的问题:我知道在一个移动构造函数/重载赋值中,你必须设置引用指向nullptr(最后)的指针的RValue引用,以避免重新分配...

回答 1 投票 1

如何使模板右值引用参数仅绑定到右值引用?

我正在编写一个网络库,并大量使用移动语义来处理文件描述符的所有权。我的一个班级希望收到其他类型的文件描述符包装并取得所有权,所以......

回答 5 投票 27

将std :: string移动到函数参数

我想将一个大的std :: string移动到一个类的成员。这是我的代码:#include #包括 #包括 using namespace std; class SomeClass {...

回答 1 投票 2

当const引用参数绑定到它时,右值是否保持其“状态”?

设T是任意类型。考虑一个带有const [lvalue]引用的函数:void f(const T&obj);假设这个函数在内部调用另一个函数,它有...

回答 2 投票 2

在lambda中移动捕获

如何通过C ++ 11 lambda中的move(也称为右值引用)捕获?我想写这样的东西:std :: unique_ptr myPointer(new int);的std ::功能 ...

回答 6 投票 125

T &&(双&符号)在C ++ 11中意味着什么?

我一直在研究C ++ 11的一些新功能,我注意到的是在声明变量时使用双&符号,比如T && var。首先,这只野兽叫什么?我希望 ...

回答 4 投票 698

std :: string参数的rvalue

当我传递文本时,以下代码中LVALUE和RVALUE之间的实践差异是什么?我的意思是,在这个字符串的特定情况下(字符串是字符串文字),有没有......

回答 2 投票 4

C ++,函数参数中的右值引用

我正在尝试理解右值参考。我已经看到它们如何在构造函数中使用,比如std :: move和std :: forward,但我仍然不明白为什么这不起作用:void func(...

回答 3 投票 15

使用rvalue引用索引,有什么好处?

我想知道使用rvalue引用参数索引到容器对象而不是const引用是否有任何可能的好处:Foo :: bar(T1 && i,T2 && x)...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.