rvalue-reference 相关问题

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

使用移动语义:rvalue引用作为方法参数。

如何仔细检查我是否正确理解了所有内容,没有遗漏任何东西 #include using std::cout; struct A { A() {cout<

回答 1 投票 -1

何时使用rvalue参考

所以基本上我的问题是:什么时候我应该使用rvalue引用?在这个例子中,我正在开发一个记录器类(它只是将一些东西记录到控制台...)。我有不同的函数来记录消息......。

回答 1 投票 1

通过输入参数的多次传递实现完美转发

考虑下面的函数accept,它接受一个T类型的 "通用引用",并将其转发到一个解析中。 ()函数对象的lvalues和rvalues的重载:模板&...

回答 2 投票 5

为函数调用了Move构造函数,但在C ++中预期为NRVO

我不明白为什么在下面的代码的主要功能中调用移动构造函数,特别是输出为:FString :: FString(字符串一)FString :: FString(字符串二)FString :: ...

回答 1 投票 1

是否可以使用右值初始化数据成员?

我对r值引用和移动语义非常陌生,但是我阅读的教程的态度是“因为临时结构是一个构造良好的对象,通常会被复制和销毁,为什么...

回答 1 投票 0

使用std :: forward的主要目的是什么,它可以解决哪些问题?

在完美转发中,std :: forward用于将命名的右值引用t1和t2转换为未命名的右值引用。这样做的目的是什么?这将如何影响调用的函数...

回答 6 投票 438

返回右值参考和临时物化

请考虑以下功能。我想要C ++ 17的答案。 MyClass && func(){return MyClass {}; } int main(){MyClass && myRef = func(); }问题:表达式是否为func()...

回答 1 投票 2

取决于编译器的不同构造函数调用

运行此问题中提供的代码:为什么移动返回右值引用参数需要用std :: move()包装? #include #include #include ...

回答 1 投票 3

将值分配给从函数返回的右值引用

#include template decltype(auto)index(Container && arr,int n){返回std :: forward (arr)[n]; }进行函数调用:#...

回答 1 投票 3


引用类型与其值类别[重复项]之间的差异

引用类型与它的值类别之间的区别,对于这个问题,我将不胜感激。 Widget && var1 = someWidget; //在这里,“ &&”表示...

回答 1 投票 1

给出Widget && var1 = someWidget; auto && var2 = var1; `,为什么auto && var2不代表右值引用?

为什么auto && var2在下面的代码中不代表右值引用?谢谢您提供有关此问题的帮助。 Widget && var1 = someWidget; //在这里,“ &&” ...

回答 1 投票 0

移动包含向量的可分配类 >

Foo类具有一个右值引用构造函数,该构造函数可移动包含的unique_ptrs向量,因此以下代码为何在Foo()上带有或不带有std :: move的情况下都给出以下错误,无论为什么[

回答 1 投票 1

r值参考和普通变量

我正在阅读以下教程:学习Cpp,在那里他们举了一个使用r值引用的示例。 #include class Fraction {private:int m_numerator; int ...

回答 1 投票 0

为什么将此类模板参数视为转发参考?

根据https://en.cppreference.com/w/cpp/language/reference,转发引用是声明为右值引用的功能模板的功能参数。汽车&&。在这里...

回答 2 投票 0

即使迭代器为std :: move_iterator,为什么range-v3也不移动元素?

#include #include #include #include 使用命名空间std :: literals; int main(){auto src = std :: vector {“ 123” s,“ 456” s,...

回答 2 投票 -1

r值引用和指针之间的确切对应关系?

这是有关C ++语言中的指针和引用类型之间的对称性的一般问题。该对应关系表在C ++(C ++ 11及更高版本)中有意义吗? |参考|指针| ----...

回答 2 投票 1

C ++为什么使std :: initializer_list const的元素类型为常数?

我通常使用std :: initializer_list ,说{“ foo” s,“ bar” s},来填充一个容器。显然,std :: initializer_list 包含临时字符串,我可以移动它们... ] >>

回答 1 投票 0

在指定的返回值上使用std :: move以确保不进行复制吗?

考虑A类; //具有堆分配内存和“正常”移动构造函数/移动分配的类。 a_factory(/ *一些用于构造A对象的args * /){//处理args的代码,以便能够...

回答 1 投票 0

L和R参考变量

我正在尝试理解Rvalue和Lvalue参考变量的基本概念,以及如何将它们作为变量的函数参数相互转换(如果可能的话)以及如何转换为...

回答 1 投票 1

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